Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/translations/sonic-pi/tutorial/id/units/?format=api&page=40
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 2023,
    "next": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/units/?format=api&page=41",
    "previous": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/units/?format=api&page=39",
    "results": [
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![TB-303 Design](../../../etc/doc/images/tutorial/articles/A.05-acid-bass/tb303-design.png)"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5527499874696765910,
            "content_hash": -5527499874696765910,
            "location": "A.05-acid-bass.md:113",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1411,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461110/?format=api",
            "priority": 100,
            "id": 15461475,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=334a602660aede2a",
            "url": "https://hosted.weblate.org/api/units/15461475/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.533615+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Screen 0](../../../etc/doc/images/tutorial/articles/A.06-minecraft/Musical-Minecraft-0-small.png)"
            ],
            "previous_source": "",
            "target": [
                "![Layar 0](../../../etc/doc/images/tutorial/articles/A.06-minecraft/Musical-Minecraft-0-small.png)"
            ],
            "id_hash": -5628039553365334363,
            "content_hash": -5628039553365334363,
            "location": "A.06-minecraft.md:44",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 1432,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461112/?format=api",
            "priority": 100,
            "id": 15461476,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=31e52fd847cfa6a5",
            "url": "https://hosted.weblate.org/api/units/15461476/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.546469+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Screen 1](../../../etc/doc/images/tutorial/articles/A.06-minecraft/Musical-Minecraft-1-small.png)"
            ],
            "previous_source": "",
            "target": [
                "![Layar 1](../../../etc/doc/images/tutorial/articles/A.06-minecraft/Musical-Minecraft-1-small.png)"
            ],
            "id_hash": 7961527634008288221,
            "content_hash": 7961527634008288221,
            "location": "A.06-minecraft.md:94",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 1444,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461114/?format=api",
            "priority": 100,
            "id": 15461477,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=ee7d07337e852bdd",
            "url": "https://hosted.weblate.org/api/units/15461477/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.557313+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Screen 2](../../../etc/doc/images/tutorial/articles/A.06-minecraft/Musical-Minecraft-2-small.png)"
            ],
            "previous_source": "",
            "target": [
                "![Layar 2](../../../etc/doc/images/tutorial/articles/A.06-minecraft/Musical-Minecraft-2-small.png)"
            ],
            "id_hash": 1774814795392070449,
            "content_hash": 1774814795392070449,
            "location": "A.06-minecraft.md:166",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 1456,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461116/?format=api",
            "priority": 100,
            "id": 15461478,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=98a168a72d73b331",
            "url": "https://hosted.weblate.org/api/units/15461478/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.568479+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Habanera Riff](../../../etc/doc/images/tutorial/articles/A.07-bizet/habanera.png)"
            ],
            "previous_source": "",
            "target": [
                "![Habanera Riff](../../../etc/doc/images/tutorial/articles/A.07-bizet/habanera.png)"
            ],
            "id_hash": 5726973827297793224,
            "content_hash": 5726973827297793224,
            "location": "A.07-bizet.md:29",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 1466,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461118/?format=api",
            "priority": 100,
            "id": 15461479,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=cf7a4c5a660b54c8",
            "url": "https://hosted.weblate.org/api/units/15461479/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.578745+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Notes](../../../etc/doc/images/tutorial/articles/A.07-bizet/notes.png)"
            ],
            "previous_source": "",
            "target": [
                "![Daftar](../../../etc/doc/images/tutorial/articles/A.07-bizet/notes.png)"
            ],
            "id_hash": -5982624394208319342,
            "content_hash": -5982624394208319342,
            "location": "A.07-bizet.md:49",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 1471,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://hosted.weblate.org/api/units/15461120/?format=api",
            "priority": 100,
            "id": 15461480,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=2cf972cf8ea06892",
            "url": "https://hosted.weblate.org/api/units/15461480/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.587265+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Habanera Riff 2](../../../etc/doc/images/tutorial/articles/A.07-bizet/habanera2.png)"
            ],
            "previous_source": "",
            "target": [
                "![Habanera Riff 2](../../../etc/doc/images/tutorial/articles/A.07-bizet/habanera2.png)"
            ],
            "id_hash": -3508335323858222268,
            "content_hash": -3508335323858222268,
            "location": "A.07-bizet.md:83",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 1478,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 3,
            "source_unit": "https://hosted.weblate.org/api/units/15461122/?format=api",
            "priority": 100,
            "id": 15461481,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=4f4fe39c6479c344",
            "url": "https://hosted.weblate.org/api/units/15461481/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.595885+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Screen 0](../../../etc/doc/images/tutorial/articles/A.08-minecraft-vj/minecraft-vj-0-small.png)"
            ],
            "previous_source": "",
            "target": [
                "![Layar 0](../../../etc/doc/images/tutorial/articles/A.08-minecraft-vj/minecraft-vj-0-small.png)"
            ],
            "id_hash": 4855058299381272077,
            "content_hash": 4855058299381272077,
            "location": "A.08-minecraft-vj.md:5",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 1493,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461124/?format=api",
            "priority": 100,
            "id": 15461482,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=c360a1ccd26ece0d",
            "url": "https://hosted.weblate.org/api/units/15461482/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.607127+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Screensman 1](../../../etc/doc/images/tutorial/articles/A.08-minecraft-vj/minecraft-vj-1-small.png)"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 9100506526977907620,
            "content_hash": 9100506526977907620,
            "location": "A.08-minecraft-vj.md:141",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1525,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461126/?format=api",
            "priority": 100,
            "id": 15461483,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=fe4b7e7840a45ba4",
            "url": "https://hosted.weblate.org/api/units/15461483/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.622588+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Amen Slices](../../../etc/doc/images/tutorial/articles/A.12-sample-slicing/amen_slice.png)"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5739639323523929066,
            "content_hash": -5739639323523929066,
            "location": "A.12-sample-slicing.md:86",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1653,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461128/?format=api",
            "priority": 100,
            "id": 15461484,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=3058b471f67e2c16",
            "url": "https://hosted.weblate.org/api/units/15461484/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.662006+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Phase Durations](../../../etc/doc/images/tutorial/articles/A.14-amplitude-modulation/slicer_phase_durations.png)"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6691292477167328826,
            "content_hash": 6691292477167328826,
            "location": "A.14-amplitude-modulation.md:56",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1701,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461130/?format=api",
            "priority": 100,
            "id": 15461485,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=dcdc3f0e55cd5e3a",
            "url": "https://hosted.weblate.org/api/units/15461485/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.683443+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Phase Durations](../../../etc/doc/images/tutorial/articles/A.14-amplitude-modulation/slicer_control_waves.png)"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5469701912230619697,
            "content_hash": 5469701912230619697,
            "location": "A.14-amplitude-modulation.md:97",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1708,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://hosted.weblate.org/api/units/15461132/?format=api",
            "priority": 100,
            "id": 15461486,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=cbe848e8d1c7ea31",
            "url": "https://hosted.weblate.org/api/units/15461486/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.694073+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Jylda Live Coding in the Sage Gateshead](../../../etc/doc/images/tutorial/articles/A.20-creative-coding-in-the-classroom/jylda-small.png) Jylda and Sam Aaron perform at the Thinking Digital Conference in the Sage Gateshead. Photo credit: TyneSight Photos."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5736686513330247500,
            "content_hash": -5736686513330247500,
            "location": "A.20-creative-coding-in-the-classroom.md:64",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1883,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 25,
            "source_unit": "https://hosted.weblate.org/api/units/15461134/?format=api",
            "priority": 100,
            "id": 15461487,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=30633202a92d28b4",
            "url": "https://hosted.weblate.org/api/units/15461487/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.745415+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Sonic Pi in the Royal Albert Hall](../../../etc/doc/images/tutorial/articles/A.20-creative-coding-in-the-classroom/convo-small.png) Sonic Pi used as one of the instruments as part of Convo at the Royal Albert Hall. Photo credit: Pete Jones."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8768832387716619031,
            "content_hash": 8768832387716619031,
            "location": "A.20-creative-coding-in-the-classroom.md:78",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1885,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 28,
            "source_unit": "https://hosted.weblate.org/api/units/15461136/?format=api",
            "priority": 100,
            "id": 15461488,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=f9b12698ecca1b17",
            "url": "https://hosted.weblate.org/api/units/15461488/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-02T14:25:09.753939+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "The vertical line at the far left of the diagram shows that the sound starts at 0 amplitude, but goes up to full amplitude immediately (this is the attack phase which we'll cover next). Once at full amplitude it then moves in a straight line down to zero taking the amount of time specified by `release:`. *Longer release times produce longer synth fade outs.*"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4516317805174939633,
            "content_hash": 4516317805174939633,
            "location": "02.4-Durations-with-Envelopes.md:81",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 195,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 64,
            "source_unit": "https://hosted.weblate.org/api/units/15479683/?format=api",
            "priority": 100,
            "id": 15479697,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=bead2f1d86395ff1",
            "url": "https://hosted.weblate.org/api/units/15479697/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-05T16:04:26.934971+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "By default when Sonic Pi is launched it listens to port 4560 for incoming OSC messages from programs on the same computer. This means that without any configuration, you can send Sonic Pi an OSC message and it will be displayed in the cue log just like incoming MIDI messages. This also means that any incoming OSC message is also automatically added to the Time State which means you can also use `get` and `sync` to work with the incoming data - just like with MIDI and synchronising `live_loops` - see sections 5.7 and 10.2 to recap how this works."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5185200651600300427,
            "content_hash": 5185200651600300427,
            "location": "12.1-Receiving-OSC.md:5",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1165,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 100,
            "source_unit": "https://hosted.weblate.org/api/units/15499834/?format=api",
            "priority": 100,
            "id": 15499890,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=c7f588852fc2898b",
            "url": "https://hosted.weblate.org/api/units/15499890/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-09T15:22:10.477870+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "from pythonosc import osc_message_builder\nfrom pythonosc import udp_client\nsender = udp_client.SimpleUDPClient('127.0.0.1', 4560)\nsender.send_message('/trigger/prophet', [70, 100, 8])"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 5804636483360390022,
            "content_hash": 5804636483360390022,
            "location": "12.1-Receiving-OSC.md:42",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1172,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://hosted.weblate.org/api/units/15499836/?format=api",
            "priority": 100,
            "id": 15499891,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=d08e362098f7fb86",
            "url": "https://hosted.weblate.org/api/units/15499891/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-09T15:22:10.497179+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "(use 'overtone.core)\n(def c (osc-client \"127.0.0.1\" 4560))\n(osc-send c \"/trigger/prophet\" 70 100 8)"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1115977872905506030,
            "content_hash": 1115977872905506030,
            "location": "12.1-Receiving-OSC.md:52",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1174,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 13,
            "source_unit": "https://hosted.weblate.org/api/units/15499838/?format=api",
            "priority": 100,
            "id": 15499892,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=8f7cbff673ba8cee",
            "url": "https://hosted.weblate.org/api/units/15499892/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-09T15:22:10.506625+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "use_osc \"localhost\", 4560\nosc \"/hello/world\""
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 524286608766990799,
            "content_hash": 524286608766990799,
            "location": "12.2-Sending-OSC.md:10",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1181,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 5,
            "source_unit": "https://hosted.weblate.org/api/units/15499840/?format=api",
            "priority": 100,
            "id": 15499893,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=8746a3e4940cf9cf",
            "url": "https://hosted.weblate.org/api/units/15499893/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-09T15:22:10.516195+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "/midi:nanokey2_keyboard:0:1/note_off  [55, 64]\n/midi:nanokey2_keyboard:0:1/note_on   [53, 102]\n/midi:nanokey2_keyboard:0:1/note_off  [57, 64]\n/midi:nanokey2_keyboard:0:1/note_off  [53, 64]\n/midi:nanokey2_keyboard:0:1/note_on   [57, 87]\n/midi:nanokey2_keyboard:0:1/note_on   [55, 81]\n/midi:nanokey2_keyboard:0:1/note_on   [53, 96]\n/midi:nanokey2_keyboard:0:1/note_off  [55, 64]"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3696109773425710764,
            "content_hash": -3696109773425710764,
            "location": "11.1-MIDI-In.md:35",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1111,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 24,
            "source_unit": "https://hosted.weblate.org/api/units/15658984/?format=api",
            "priority": 100,
            "id": 15659096,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=4cb4c7be701c6954",
            "url": "https://hosted.weblate.org/api/units/15659096/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-17T22:58:29.236554+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "These events are broken into two sections. Firstly there's the name of the event such as `/midi:nanokey2_keyboard:0:1/note_on` and secondly there's the values of the event such as `[18, 62]`. Interestingly, these are the two things we need to store information in Time State. *Sonic Pi automatically inserts incoming MIDI events into Time State*. This means you can `get` the latest MIDI value and also `sync` waiting for the next MIDI value using everything we learned in section 10 of this tutorial."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -321918026384798568,
            "content_hash": -321918026384798568,
            "location": "11.1-MIDI-In.md:52",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1114,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 81,
            "source_unit": "https://hosted.weblate.org/api/units/15658986/?format=api",
            "priority": 100,
            "id": 15659097,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=7b885142b68a0c98",
            "url": "https://hosted.weblate.org/api/units/15659097/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-17T22:58:29.267465+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "live_loop :midi_piano do\n  note, velocity = sync \"/midi:nanokey2_keyboard:0:1/note_on\"\n  synth :piano, note: note\nend"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -7160322461459640683,
            "content_hash": -7160322461459640683,
            "location": "11.1-MIDI-In.md:67",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1117,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 13,
            "source_unit": "https://hosted.weblate.org/api/units/15658988/?format=api",
            "priority": 100,
            "id": 15659098,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=1ca16ca887728e95",
            "url": "https://hosted.weblate.org/api/units/15659098/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-17T22:58:29.279098+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "live_loop :midi_piano do\n  note, velocity = sync \"/midi:nanokey2_keyboard:0:1/note_on\"\n  synth :piano, note: note, amp: velocity / 127.0\nend"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6316714462974297765,
            "content_hash": 6316714462974297765,
            "location": "11.1-MIDI-In.md:95",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1120,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 17,
            "source_unit": "https://hosted.weblate.org/api/units/15658990/?format=api",
            "priority": 100,
            "id": 15659099,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=d7a97a563127c6a5",
            "url": "https://hosted.weblate.org/api/units/15659099/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-17T22:58:29.290775+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "live_loop :midi_piano do\n  use_real_time\n  note, velocity = sync \"/midi:nanokey2_keyboard:0:1/note_on\"\n  synth :piano, note: note, amp: velocity / 127.0\nend"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2132894757876427333,
            "content_hash": 2132894757876427333,
            "location": "11.1-MIDI-In.md:124",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1124,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 18,
            "source_unit": "https://hosted.weblate.org/api/units/15658992/?format=api",
            "priority": 100,
            "id": 15659100,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=9d99907b52846a45",
            "url": "https://hosted.weblate.org/api/units/15659100/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-17T22:58:29.302384+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "live_loop :foo do\n  use_real_time\n  a, b, c = sync \"/osc*/trigger/prophet\"\n  synth :prophet, note: a, cutoff: b, sustain: c\nend"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -1259359275312620076,
            "content_hash": -1259359275312620076,
            "location": "12.1-Receiving-OSC.md:19",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1168,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 19,
            "source_unit": "https://hosted.weblate.org/api/units/15658994/?format=api",
            "priority": 100,
            "id": 15659101,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=6e85db695665ddd4",
            "url": "https://hosted.weblate.org/api/units/15659101/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-17T22:58:29.323873+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "In this example we described an OSC path `\"/osc*/trigger/prophet\"` which we're syncing on. This can be any valid OSC path (all letters and numbers are supported and the `/` is used like in a URL to break up the path to multiple words). The `/osc` prefix is added by Sonic Pi to all incoming OSC messages, so we need to send an OSC message with the path `/trigger/prophet` for our `sync` to stop blocking and the prophet synth to be triggered."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -3902483498004404557,
            "content_hash": -3902483498004404557,
            "location": "12.1-Receiving-OSC.md:27",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1169,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 81,
            "source_unit": "https://hosted.weblate.org/api/units/15658996/?format=api",
            "priority": 100,
            "id": 15659102,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=49d797ef4f9fa6b3",
            "url": "https://hosted.weblate.org/api/units/15659102/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-02-17T22:58:29.334041+01:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "*I* - Cue Viewer"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8017982233212533597,
            "content_hash": 8017982233212533597,
            "location": "01.2-Exploring-the-Interface.md:19",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 50,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://hosted.weblate.org/api/units/22460054/?format=api",
            "priority": 100,
            "id": 22462650,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=ef45985c2a06bb5d",
            "url": "https://hosted.weblate.org/api/units/22462650/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:40.976697+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "I. Cue Viewer"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 3181841042838447265,
            "content_hash": 3181841042838447265,
            "location": "01.2-Exploring-the-Interface.md:93",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 67,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://hosted.weblate.org/api/units/22460073/?format=api",
            "priority": 100,
            "id": 22462651,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=ac282b920224e4a1",
            "url": "https://hosted.weblate.org/api/units/22462651/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:41.119100+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "All internal and external events (called cues in Sonic Pi) are automatically logged in the Cue Viewer. For example, if you have a MIDI controller connected and press one of its buttons, you'll see a new cue event in the Cue Viewer telling you the name of the controller and which button you pressed. Once you've mastered the basics of making and producing sounds, you'll start to want to cue sounds or whole sections of sounds based on events such as these. A cue event is just an indication that something happened. For example, every time a live loop spins round, it sends a cue event out which is logged in the Cue Viewer. Also, external events such as MIDI messages from connected MIDI equipment and OSC messages from other programs or computers are also displayed in the Cue Viewer. It is also possible to directly generate cue events using the `cue` function. Anything that appears in the Cue Viewer can be used to trigger something happening. This is covered in more detail in Sections 10 to 12 of this tutorial."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2591432965193849350,
            "content_hash": 2591432965193849350,
            "location": "01.2-Exploring-the-Interface.md:95",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 68,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 181,
            "source_unit": "https://hosted.weblate.org/api/units/22460077/?format=api",
            "priority": 100,
            "id": 22462652,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=a3f69e8d459dda06",
            "url": "https://hosted.weblate.org/api/units/22462652/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:41.136116+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "loop do\n  sample :perc_bell, rate: rrand(0.125, 1.5)\n  sleep rrand(0.2, 2)\nend"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 7234288846652491989,
            "content_hash": 7234288846652491989,
            "location": "04-Randomisation.md:56",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 462,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 11,
            "source_unit": "https://hosted.weblate.org/api/units/22460339/?format=api",
            "priority": 100,
            "id": 22462653,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=e4655b608b4ac8d5",
            "url": "https://hosted.weblate.org/api/units/22462653/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:44.915192+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "a = (ring 6, 5, 4, 3, 2, 1)\nlive_loop :sorted do\n  a = a.sort\n  sleep 0.5\n  puts \"sorted: \", a\nend\nlive_loop :shuffled do\n  a = a.shuffle\n  sleep 0.5\nend"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8705437786926877984,
            "content_hash": -8705437786926877984,
            "location": "05.6-Variables.md:139",
            "context": "",
            "note": "",
            "flags": "no-wrap",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 648,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 31,
            "source_unit": "https://hosted.weblate.org/api/units/22460451/?format=api",
            "priority": 100,
            "id": 22462655,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=07301274c7f5f2e0",
            "url": "https://hosted.weblate.org/api/units/22462655/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:46.218920+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "4. Use the Main Mixer"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 1263646887039403134,
            "content_hash": 1263646887039403134,
            "location": "A.15-performance.md:97",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1748,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 5,
            "source_unit": "https://hosted.weblate.org/api/units/22462298/?format=api",
            "priority": 100,
            "id": 22462657,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=918960260f83047e",
            "url": "https://hosted.weblate.org/api/units/22462657/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:54.277205+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "One of Sonic Pi's best kept secrets is that it has a main mixer through which all sound flows. This mixer has both a low pass filter and a high pass filter built-in, so you can easily perform global modifications to the sound. The main mixer's functionality can be accessed via the fn `set_mixer_control!`. For example, whilst some code is running and making sound, enter this into a spare buffer and hit `Run`:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -4367433256685650583,
            "content_hash": -4367433256685650583,
            "location": "A.15-performance.md:99",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1749,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 73,
            "source_unit": "https://hosted.weblate.org/api/units/22462302/?format=api",
            "priority": 100,
            "id": 22462658,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=4363c297bb063d69",
            "url": "https://hosted.weblate.org/api/units/22462658/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:54.296257+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "This month, instead of giving you a final example that combines all the things discussed, let's part by setting down a challenge. See if you can spend a week practicing one of these ideas every day. For example, one day practice manual triggers, the next do some basic `live_loop` work and the following day play around with the main mixer. Then repeat. Don't worry if things feel slow and clunky at first - just keep practicing and before you know it you'll be live coding for a real audience."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -7982438471535322118,
            "content_hash": -7982438471535322118,
            "location": "A.15-performance.md:154",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1760,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 89,
            "source_unit": "https://hosted.weblate.org/api/units/22462311/?format=api",
            "priority": 100,
            "id": 22462659,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=1138ae80beb99bfa",
            "url": "https://hosted.weblate.org/api/units/22462659/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:54.377592+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "![Varying amounts of low pass filtering](../../../etc/doc/images/tutorial/articles/A.19-subtractive-synthesis/subtractive-synthesis-waveforms.png)"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5497143611626634181,
            "content_hash": -5497143611626634181,
            "location": "A.19-subtractive-synthesis.md:88",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1863,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 6,
            "source_unit": "https://hosted.weblate.org/api/units/22462371/?format=api",
            "priority": 100,
            "id": 22462660,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=33b63902a5afc43b",
            "url": "https://hosted.weblate.org/api/units/22462660/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:55.836162+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "Let's take a quick look at what's going on here. Firstly we start an `:lpf` FX block as normal with an initial `cutoff:` of a low `50`. However, the first line also finishes with the strange `|fx|` at the end. This is an optional part of the `with_fx` syntax which allows you to directly name and control the running FX synth. Line 2 does exactly this and controls the FX to set the `cutoff_slide:` opt to 3 and the new target `cutoff:` to be `130`. The FX will now start sliding the `cutoff:` opt's value from `50` to `130` over a period of 3 beats. Finally we also trigger a source signal synth so we can hear the effect of the modulated low pass filter."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -8481593455687762546,
            "content_hash": -8481593455687762546,
            "location": "A.19-subtractive-synthesis.md:127",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1868,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 125,
            "source_unit": "https://hosted.weblate.org/api/units/22462373/?format=api",
            "priority": 100,
            "id": 22462661,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=0a4b53b08073fd8e",
            "url": "https://hosted.weblate.org/api/units/22462661/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:55.892809+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "For a full list take a look at section B.2 Shortcut Cheatsheet."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4767826800966548278,
            "content_hash": 4767826800966548278,
            "location": "B.01-Using-Shortcuts.md:84",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1930,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 12,
            "source_unit": "https://hosted.weblate.org/api/units/22462375/?format=api",
            "priority": 100,
            "id": 22462662,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=c22ab936e632bb36",
            "url": "https://hosted.weblate.org/api/units/22462662/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:56.302195+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "The following is a summary of the main shortcuts available within Sonic Pi. Please see Section B.1 for motivation and background."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -351993367475960134,
            "content_hash": -351993367475960134,
            "location": "B.02-Shortcut-Cheatsheet.md:5",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1933,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 21,
            "source_unit": "https://hosted.weblate.org/api/units/22462377/?format=api",
            "priority": 100,
            "id": 22462663,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=7b1d77e5b04d46ba",
            "url": "https://hosted.weblate.org/api/units/22462663/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:56.342267+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "`S-M-0` - Switch to buffer 0"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -5788598620915830847,
            "content_hash": -5788598620915830847,
            "location": "B.02-Shortcut-Cheatsheet.md:26",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1947,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 6,
            "source_unit": "https://hosted.weblate.org/api/units/22462379/?format=api",
            "priority": 100,
            "id": 22462664,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=2faac4393cfeefc1",
            "url": "https://hosted.weblate.org/api/units/22462664/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:56.461095+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "`S-M-1` - Switch to buffer 1"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -936583750435407038,
            "content_hash": -936583750435407038,
            "location": "B.02-Shortcut-Cheatsheet.md:27",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1948,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 6,
            "source_unit": "https://hosted.weblate.org/api/units/22462381/?format=api",
            "priority": 100,
            "id": 22462665,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=7300960a8ce4fb42",
            "url": "https://hosted.weblate.org/api/units/22462665/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:56.473078+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "..."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 9041744916878268179,
            "content_hash": 9041744916878268179,
            "location": "B.02-Shortcut-Cheatsheet.md:28",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1949,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://hosted.weblate.org/api/units/22462383/?format=api",
            "priority": 100,
            "id": 22462666,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=fd7abb18c0391713",
            "url": "https://hosted.weblate.org/api/units/22462666/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:56.495750+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "`S-M-9` - Switch to buffer 9"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 2810377070316594879,
            "content_hash": 2810377070316594879,
            "location": "B.02-Shortcut-Cheatsheet.md:29",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 1950,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 6,
            "source_unit": "https://hosted.weblate.org/api/units/22462385/?format=api",
            "priority": 100,
            "id": 22462667,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=a700770e311fa6bf",
            "url": "https://hosted.weblate.org/api/units/22462667/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2020-10-13T20:26:56.515466+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "Welcome to Sonic Pi. Hopefully you're as excited to get started making your own sounds as I am to show you. It's going to be a really *fun* ride where you'll learn all about music, synthesis, programming, composition, performance and more."
            ],
            "previous_source": "",
            "target": [
                "Selamat datang di Sonic Pi. Semoga Anda bersemangat untuk mulai membuat suara Anda sendiri seperti yang akan saya tunjukkan kepada Anda. Ini akan menjadi perjalanan yang sangat *menyenangkan* di mana Anda akan mempelajari semua tentang musik, sintesis, pemrograman, komposisi, pertunjukan, dan banyak lagi."
            ],
            "id_hash": 8452512654503176548,
            "content_hash": 8452512654503176548,
            "location": "01-Welcome-to-Sonic-Pi.md:5",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 3,
            "has_suggestion": true,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 41,
            "source_unit": "https://hosted.weblate.org/api/units/76991290/?format=api",
            "priority": 100,
            "id": 76991696,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=f54d5b79d727e964",
            "url": "https://hosted.weblate.org/api/units/76991696/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:03.291829+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "Woah, fun! I'm sure you could keep doing that all day. But wait, before you lose yourself in an infinite stream of beeps, try changing the number:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4238322444230873209,
            "content_hash": 4238322444230873209,
            "location": "02.1-Your-First-Beeps.md:19",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 89,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 27,
            "source_unit": "https://hosted.weblate.org/api/units/76991292/?format=api",
            "priority": 100,
            "id": 76991697,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=bad18bceb3f25079",
            "url": "https://hosted.weblate.org/api/units/76991697/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:03.310095+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "There's also a handy shortcut for a rest (a musical way of saying not to play anything instead of a note) using `:r`, `:rest` or `nil`."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 8943432020168421116,
            "content_hash": 8943432020168421116,
            "location": "02.1-Your-First-Beeps.md:125",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 113,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 26,
            "source_unit": "https://hosted.weblate.org/api/units/76991294/?format=api",
            "priority": 100,
            "id": 76991698,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=fc1d7409bafe2efc",
            "url": "https://hosted.weblate.org/api/units/76991698/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:03.318714+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "Now go *wild* and have fun making your own tunes."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": -369470326207861878,
            "content_hash": -369470326207861878,
            "location": "02.1-Your-First-Beeps.md:128",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 114,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 10,
            "source_unit": "https://hosted.weblate.org/api/units/76991296/?format=api",
            "priority": 100,
            "id": 76991699,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=7adf60b223552b8a",
            "url": "https://hosted.weblate.org/api/units/76991699/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:03.322246+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "Opts have two major parts, their name (the name of the control) and their value (the value you want to set the control at). For example, you might have an opt called `cheese:` and want to set it with a value of `1`."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4031957610239736070,
            "content_hash": 4031957610239736070,
            "location": "02.2-Synth-Params.md:22",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 120,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 43,
            "source_unit": "https://hosted.weblate.org/api/units/76991298/?format=api",
            "priority": 100,
            "id": 76991700,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=b7f4641593c5b906",
            "url": "https://hosted.weblate.org/api/units/76991700/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:03.339081+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "Woah! It plays it *backwards*! Now try playing with lots of different samples at different rates. Try very fast rates. Try really slow rates. See what interesting sounds you can produce."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 3504912001356214864,
            "content_hash": 3504912001356214864,
            "location": "03.3-Stretching-Samples.md:72",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 291,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 31,
            "source_unit": "https://hosted.weblate.org/api/units/76991300/?format=api",
            "priority": 100,
            "id": 76991701,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=b0a3f2e539d73250",
            "url": "https://hosted.weblate.org/api/units/76991701/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:03.817529+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "If all of this sounds a bit complicated, don't worry. Once you play around with it a little, it will all become quite clear. Before you do though, a simple analogy is that of guitar FX pedals. There are many kinds of FX pedals you can buy. Some add reverb, others distort etc. A guitarist will plug their guitar into one FX pedal - i.e. distortion -, then take another cable and connect (chain) a reverb pedal. The output of the reverb pedal can then be plugged into the amplifier:"
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 4151771050477839097,
            "content_hash": 4151771050477839097,
            "location": "06-FX.md:20",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 680,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 90,
            "source_unit": "https://hosted.weblate.org/api/units/76991302/?format=api",
            "priority": 100,
            "id": 76991702,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=b99e0dc5fc7b62f9",
            "url": "https://hosted.weblate.org/api/units/76991702/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:04.867502+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        },
        {
            "translation": "https://hosted.weblate.org/api/translations/sonic-pi/tutorial/id/?format=api",
            "source": [
                "This is called FX chaining. Sonic Pi supports exactly this. Additionally, each pedal often has dials and sliders to allow you to control how much distortion, reverb, echo etc. to apply. Sonic Pi also supports this kind of control. Finally, imagine a guitarist jamming along whilst someone else changes and plays with the controls of their FX pedals. Sonic Pi also supports this - but instead of needing someone else to control things for you, that's where the computer steps in."
            ],
            "previous_source": "",
            "target": [
                ""
            ],
            "id_hash": 6476020093690441292,
            "content_hash": 6476020093690441292,
            "location": "06-FX.md:33",
            "context": "",
            "note": "",
            "flags": "",
            "labels": [],
            "state": 0,
            "fuzzy": false,
            "translated": false,
            "approved": false,
            "position": 682,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 81,
            "source_unit": "https://hosted.weblate.org/api/units/76991304/?format=api",
            "priority": 100,
            "id": 76991703,
            "web_url": "https://hosted.weblate.org/translate/sonic-pi/tutorial/id/?checksum=d9df71f6bab5ee4c",
            "url": "https://hosted.weblate.org/api/units/76991703/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2022-05-30T15:44:04.873723+02:00",
            "last_updated": "2023-05-23T12:28:47.723593+02:00"
        }
    ]
}