|
This documentation is under construction.
|
Space export/import
Jam Pad allows you to export a space including all of its clips and other data to a folder of your choice. The reverse, importing from a folder, is also possible.
Export format
|
You don’t need to understand anything in this section if you simply want to export or import spaces! This section is intended for …
|
Folder structure
A space export is a folder with the following structure:
hello/
├── assets/ (1)
│ ├── YSBSZJJZCGD68JDB969J4SDFAC.m4a (2)
│ ├── RS48WGQ5FZE6EZ7V1S16NJXFEW.mp3
├── hello.space.jampad.json (3)
The JSON file
JSON is a widely used data exchange format. Unlike CSV, it can easily represent nested structures, which is important because Jam Pad spaces can get quite complex.
Let’s look at an example:
Example space export file
{
"$schema": "https://jampad.app/schemas/space.jampad.schema.json",
"space": {
"name": "Nature and music"
},
"customFieldsForClips": [
{
"id": "tonalQuality",
"hidden": false,
"name": "Tonal quality",
"description": "Tonal quality of a musical piece, that is, *major* or *minor*. If you need more variety, consider adding a *Scales/modes* field.",
"position": 31,
"showInListView": true,
"showInAdvancedFilter": false,
"type": "tonalQuality"
},
{
"id": "moods",
"hidden": false,
"name": "Mood",
"description": "Associate a clip or marker with moods or emotions, such as \"Happy\" or \"Sad\"",
"position": 600,
"showInListView": true,
"showInAdvancedFilter": false,
"type": "items",
"itemTypeId": "moods"
},
{
"id": "tonalCenter",
"hidden": false,
"name": "Tonal center",
"description": "Tonal center (or root note) of a musical piece, for example D♭. Together with the *Tonal quality* field, it makes up the key of a musical piece.",
"position": 30,
"showInListView": true,
"showInAdvancedFilter": false,
"type": "note"
}
],
"customFieldsForMarkers": [
{
"id": "019951f6-fa46-7b80-b4c8-54801c12a8b0",
"hidden": false,
"name": "Sound source",
"position": 1000,
"showInListView": true,
"showInAdvancedFilter": false,
"type": "item",
"itemTypeId": "019951f6-fa45-7c09-a569-22d90f660df3"
},
{
"id": "rating",
"hidden": false,
"name": "Rating",
"icon": "starRate",
"description": "Each user can give their own 1–5 rating.",
"position": 10,
"showInListView": true,
"showInAdvancedFilter": true,
"type": "perUserRating"
}
],
"customItemTypes": [
{
"id": "019951f6-fa45-7c09-a569-22d90f660df3",
"hidden": false,
"name": "Sound source",
"nameIsPath": false
},
{
"id": "moods",
"hidden": false,
"name": "Moods",
"nameIsPath": false
}
],
"customItems": {
"moods": [
{
"id": "019951f4-f46f-7693-b179-99734860774c",
"authorId": 0,
"hidden": false,
"name": "Rigid",
"customColor": [
23,
190,
207
]
},
{
"id": "019951f4-bfd2-7fe8-a227-ddd6e19c29e5",
"authorId": 0,
"hidden": false,
"name": "Dreamy",
"customColor": [
148,
103,
189
]
}
],
"019951f6-fa45-7c09-a569-22d90f660df3": [
{
"id": "019951f9-1ed2-714f-be12-163b97bf1b22",
"authorId": 0,
"hidden": false,
"name": "Stones",
"customColor": [
188,
189,
34
]
},
{
"id": "019951f7-1514-7dfc-9c79-e5c7ec9b761c",
"authorId": 0,
"hidden": false,
"name": "Cricket",
"customColor": [
255,
127,
14
]
}
]
},
"clips": [
{
"id": "019951ef-467e-7e21-9141-7a2d32bbeb7a",
"authorId": 0,
"hidden": false,
"title": "Distance",
"customData": {
"moods": {
"019951f4-bfd2-7fe8-a227-ddd6e19c29e5": null
},
"tonalQuality": "min",
"tonalCenter": "B♭"
},
"versions": [
{
"filePath": "assets/8E4CN8JX590DTMPA5MFM76HGC4.mp3",
"authorId": 0,
"origin": "imported",
"importedOrigin": {
"installationId": "01991a04-8640-7820-b3bf-3da3754cf705",
"importId": "019951ae-4098-7ddf-822c-a22ebd3246e0",
"baseFolderHash": "5A6JFGW2HZ3SB3E6KTCCW42RR8",
"baseFolderName": "docs",
"contentSize": 11903690,
"path": "Distance.mp3",
"contentHash": "8E4CN8JX590DTMPA5MFM76HGC4",
"format": "mp3Cbr"
}
}
],
"comments": []
},
{
"id": "019951ef-2c7b-7a6d-b5cc-4afc4ec2f08c",
"authorId": 0,
"hidden": false,
"title": "Siquijor Hill",
"customData": {},
"versions": [
{
"filePath": "assets/7SA8JQ5SRM97H2XC4075TWRRG4.m4a",
"authorId": 0,
"origin": "imported",
"importedOrigin": {
"installationId": "01991a04-8640-7820-b3bf-3da3754cf705",
"importId": "019951ae-4098-7ddf-822c-a22ebd3246e0",
"baseFolderHash": "5A6JFGW2HZ3SB3E6KTCCW42RR8",
"baseFolderName": "docs",
"contentSize": 15265350,
"path": "230212-142536-siquijor-hill.wav",
"contentHash": "4JRKZ1T9SPS035M0KZ36SRHXEG",
"format": "wav"
}
}
],
"comments": []
},
{
"id": "019951ef-5d9a-7a48-bbb9-23d7d9c5f4fc",
"authorId": 0,
"hidden": false,
"title": "Rügen Sea",
"customData": {},
"versions": [
{
"filePath": "assets/TT9Q3E82VZN64VY1YP0CF76AR4.m4a",
"authorId": 0,
"origin": "imported",
"importedOrigin": {
"installationId": "01991a04-8640-7820-b3bf-3da3754cf705",
"importId": "019951eb-b050-7b1f-961e-c669e7657e70",
"baseFolderHash": "5A6JFGW2HZ3SB3E6KTCCW42RR8",
"baseFolderName": "docs",
"contentSize": 22040702,
"path": "ruegen.WAV",
"contentHash": "D4GPJ595FT4EVB56M1H99NC76C",
"format": "wav"
}
}
],
"comments": []
}
],
"markers": [
{
"id": "019951e3-c263-7d6e-96ab-0acdc0511c1b",
"authorId": 0,
"hidden": false,
"clipVersionId": "019951ef-2c7b-7a6d-b5cc-4afc4ec2f08c/1",
"name": "Loud cricket",
"start": 254634,
"length": 15000,
"createdAt": 1758015504995,
"comments": [
{
"id": "019951f1-724d-74b6-9245-104e6fb00b68",
"hidden": false,
"authorId": 0,
"createdAt": 1758016401997,
"content": "What an awesome cricket sound!"
}
],
"customData": {
"rating": {
"0": 4
},
"019951f6-fa46-7b80-b4c8-54801c12a8b0": "019951f7-1514-7dfc-9c79-e5c7ec9b761c"
}
},
{
"id": "019951f8-317b-7f96-a3ea-652e7e9bf8d0",
"authorId": 0,
"hidden": false,
"clipVersionId": "019951ef-5d9a-7a48-bbb9-23d7d9c5f4fc/1",
"name": "Knocking stones",
"start": 36123,
"length": 15000,
"createdAt": 1758016844155,
"comments": [],
"customData": {
"019951f6-fa46-7b80-b4c8-54801c12a8b0": "019951f9-1ed2-714f-be12-163b97bf1b22"
}
},
{
"id": "019951e4-22aa-78e2-a8e8-4a36823d63aa",
"authorId": 0,
"hidden": false,
"clipVersionId": "019951ef-467e-7e21-9141-7a2d32bbeb7a/1",
"name": "Drop & Flute",
"start": 98404,
"length": 15000,
"createdAt": 1758015529643,
"comments": [],
"customData": {}
},
{
"id": "019951e5-2158-7455-9435-5e9dfbe83a6f",
"authorId": 0,
"hidden": false,
"clipVersionId": "019951ef-467e-7e21-9141-7a2d32bbeb7a/1",
"name": "Distorted",
"start": 153909,
"length": 15000,
"createdAt": 1758015594840,
"comments": [],
"customData": {
"rating": {
"0": 2
}
}
}
],
"playlists": [
{
"id": "019951ef-58e7-707a-8a8c-ac511b84a591",
"hidden": false,
"authorId": 0,
"createdAt": 1758016264423,
"name": "Nature",
"entries": [
"/marker/019951e4-22aa-78e2-a8e8-4a36823d63aa#6DHP",
"/marker/019951e3-c263-7d6e-96ab-0acdc0511c1b#PA5X",
"/clip/019951ef-2c7b-7a6d-b5cc-4afc4ec2f08c#TYCX"
]
}
],
"sheets": [
{
"id": "home",
"authorId": 0,
"hidden": false,
"title": "Home",
"content": {
"type": "doc",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "text",
"text": "This space is all about nature. Field recordings mixed with music deeply connected to the natural world."
}
]
},
{
"type": "heading",
"attrs": {
"id": "0HPS",
"level": 2
},
"content": [
{
"type": "text",
"text": "Some examples"
}
]
},
{
"type": "bulletList",
"content": [
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "jam",
"attrs": {
"id": "EYPX",
"href": "/marker/019951f8-317b-7f96-a3ea-652e7e9bf8d0"
}
}
]
}
]
},
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "jam",
"attrs": {
"id": "85VB",
"href": "/clip/019951ef-5d9a-7a48-bbb9-23d7d9c5f4fc"
}
}
]
}
]
},
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{
"type": "jam",
"attrs": {
"id": "337W",
"href": "/clip/019951ef-467e-7e21-9141-7a2d32bbeb7a"
}
}
]
}
]
}
]
}
]
}
}
],
"clipPlayEvents": [
{
"timestamp": 1764241281000,
"clipVersionId": "019951ef-2c7b-7a6d-b5cc-4afc4ec2f08c/1",
"start": 0,
"length": 7804
},
{
"timestamp": 1764241286000,
"clipVersionId": "019951ef-5d9a-7a48-bbb9-23d7d9c5f4fc/1",
"start": 0,
"length": 4404
}
]
}
The structure of space export files is specified in this JSON Schema file. JSON schema files are made for machines, so they are not very readable. However, you can use a JSON Schema Viewer to read it like a specification: