{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "ufNWSOg1e9sw"
},
"source": [
"# Headphones v Speakers Motion Capture Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Installing and importing libraries"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "gI8U9n_1fP8H"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"import matplotlib\n",
"\n",
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"import math\n",
"\n",
"import sys\n",
"\n",
"import pylab\n",
"\n",
"import numpy.linalg\n",
"\n",
"import plotly.plotly as py\n",
"\n",
"%load_ext rpy2.ipython\n",
"\n",
"#r packages\n",
"from rpy2.robjects import r\n",
"from rpy2.robjects.packages import importr\n",
"from rpy2.robjects import FloatVector\n",
"stats = importr('stats')\n",
"base = importr('base')\n",
"\n",
"from scipy import stats\n",
"\n",
"import seaborn\n",
"\n",
"from IPython.display import display, Markdown\n",
"\n",
"#pyrqa packages\n",
"from pyrqa.time_series import TimeSeries\n",
"from pyrqa.settings import Settings\n",
"from pyrqa.computing_type import ComputingType\n",
"from pyrqa.neighbourhood import FixedRadius\n",
"from pyrqa.metric import EuclideanMetric\n",
"from pyrqa.computation import RQAComputation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reading MoCap csv files for all participants"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "5YQSo0OcfaRk"
},
"outputs": [],
"source": [
"#Reading csv files\n",
"\n",
"\n",
"\n",
"hp_raw_mocap = {} #headphones condition\n",
"\n",
"path = r'/Users/vesanche/Desktop/hp/' # use your path for the folder containing Headphones mocap files\n",
"hp_files = sorted(glob.glob(os.path.join(path, \"*.csv\")))\n",
"\n",
"i=1\n",
"\n",
"for filename in hp_files:\n",
" hp_raw_mocap[i] = pd.read_csv(filename, delimiter=',', encoding='utf-8', skiprows=10, low_memory=False, na_values='0')\n",
" i = i+1"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "jK3vTMqOszM-"
},
"outputs": [],
"source": [
"sp_raw_mocap = {} #speakers condition\n",
"\n",
"path = r'/Users/vesanche/Desktop/sp/' # use your path for the folder containing Speakers mocap files\n",
"sp_files = sorted(glob.glob(os.path.join(path, \"*.csv\")))\n",
"\n",
"i=1\n",
"\n",
"for filename in sp_files:\n",
" sp_raw_mocap[i] = pd.read_csv(filename, delimiter=',', encoding='utf-8', skiprows=10, low_memory=False, na_values='0')\n",
" i = i+1\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "QDC3hpksL-v2"
},
"outputs": [],
"source": [
"hp_raw_mocap[35]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "2CJwKqVbKiIl"
},
"outputs": [],
"source": [
"#Inserting column with time for all participants in both conditions\n",
"\n",
"for j in range (1,len(hp_raw_mocap)+1):\n",
" time = np.linspace(0, len(hp_raw_mocap[j])/200, len(hp_raw_mocap[j]))\n",
" hp_raw_mocap[j].insert(0, 'Time (s)', time)\n",
" \n",
"for i in range (1,len(sp_raw_mocap)+1):\n",
" time = np.linspace(0, len(sp_raw_mocap[i])/200, len(sp_raw_mocap[i]))\n",
" sp_raw_mocap[i].insert(0, 'Time (s)', time)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "49vBwQc0mpp5"
},
"source": [
"# Preprocessing data"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "rRsYf6EKm10C"
},
"source": [
"## Calculating velocities (QoM) for all markers, all participants"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "VkSKn7DkEzme"
},
"outputs": [],
"source": [
"#Function that computes vector norm of displacement\n",
"def displacement(posdata):\n",
" \n",
" times = np.linspace(0, len(posdata)/200, len(posdata))\n",
" posdata.insert(0, 'Time (s)', times)\n",
"\n",
" displacement = (\n",
" np.roll(posdata, -1, axis=0)\n",
" - posdata)[:-1]\n",
" \n",
" #displacement = displacement.drop(displacement.index[len(displacement)-1])\n",
" \n",
"\n",
" displacement = np.sqrt(\n",
" displacement.iloc[:,1] ** 2 +\n",
" displacement.iloc[:,2] ** 2 +\n",
" displacement.iloc[:,3] ** 2\n",
" )\n",
"\n",
" return pd.DataFrame({\n",
" 'Time (s)': posdata['Time (s)'][:-1],\n",
" 'Distance': displacement,\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "E0Lb1RcrE2zl"
},
"outputs": [],
"source": [
"#Function that computes vector norm of velocity\n",
"\n",
"def velocity(posdata):\n",
" \n",
" \n",
" times = np.linspace(0, len(posdata)/200, len(posdata))\n",
" posdata.insert(0, 'Time (s)', times)\n",
" \n",
" displacement = (\n",
" np.roll(posdata, -1, axis=0)\n",
" - posdata)[:-1]\n",
" \n",
" #displacement = displacement.drop(displacement.index[len(displacement)-1])\n",
" \n",
"\n",
" speeds = np.sqrt(\n",
" displacement.iloc[:,1] ** 2 +\n",
" displacement.iloc[:,2] ** 2 +\n",
" displacement.iloc[:,3] ** 2\n",
" ) / displacement['Time (s)']\n",
"\n",
" return pd.DataFrame({\n",
" 'Time (s)': posdata['Time (s)'][:-1],\n",
" 'Velocity': speeds,\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "wIjNRPsph6bq"
},
"outputs": [],
"source": [
"#Running displacement function for all participants - HP condition\n",
"hp_displacements_mocap = {} \n",
"\n",
"for participant in range (1,len(hp_raw_mocap)+1):\n",
" hp_displacements_mocap[participant] = {}\n",
" \n",
" j = 0\n",
" k = 1\n",
" \n",
" for markers in range (4,len(hp_raw_mocap[participant].columns)+1,3):\n",
" j=j+1\n",
" hp_displacements_mocap[participant][j] = displacement(hp_raw_mocap[participant].iloc[:,k:markers:1])\n",
" k = k+3\n",
" hp_displacements_mocap[participant][j].index = hp_displacements_mocap[participant][j]['Time (s)']\n",
" hp_displacements_mocap[participant][j] = hp_displacements_mocap[participant][j].drop(['Time (s)'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "RzqzwdpCDcEO"
},
"outputs": [],
"source": [
"#Running displacement function for all participants - SP condition\n",
"sp_displacements_mocap = {} \n",
"\n",
"for participant in range (1,len(sp_raw_mocap)+1):\n",
" sp_displacements_mocap[participant] = {}\n",
" \n",
" j = 0\n",
" k = 1\n",
"\n",
" for markers in range (4,len(sp_raw_mocap[participant].columns)+1,3): \n",
" j=j+1\n",
" sp_displacements_mocap[participant][j] = displacement(sp_raw_mocap[participant].iloc[:,k:markers:1])\n",
" k = k+3\n",
" sp_displacements_mocap[participant][j].index = sp_displacements_mocap[participant][j]['Time (s)']\n",
" sp_displacements_mocap[participant][j] = sp_displacements_mocap[participant][j].drop(['Time (s)'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "VmJLi6SnVW1Y"
},
"outputs": [],
"source": [
"sp_displacements_mocap[1][5] #Displacement from participant 1, marker 21 - SP condition"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "oUqnGGQuo_NB"
},
"outputs": [],
"source": [
"#Running velocity (QoM) function for all participants - HP condition\n",
"hp_velocities_mocap = {} \n",
"\n",
"for participant in range (1,len(hp_raw_mocap)+1):\n",
" hp_velocities_mocap[participant] = {}\n",
" \n",
" j = 0\n",
" k = 1\n",
" \n",
" for markers in range (4,len(hp_raw_mocap[participant].columns)+1,3):\n",
" j=j+1\n",
" hp_velocities_mocap[participant][j] = velocity(hp_raw_mocap[participant].iloc[:,k:markers:1])\n",
" k = k+3\n",
" hp_velocities_mocap[participant][j].index = hp_velocities_mocap[participant][j]['Time (s)']\n",
" hp_velocities_mocap[participant][j] = hp_velocities_mocap[participant][j].drop(['Time (s)'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "w5LuxZ5XqUDt"
},
"outputs": [],
"source": [
"#Running velocity (QoM) function for all participants - SP condition\n",
"sp_velocities_mocap = {} \n",
"\n",
"for participant in range (1,len(sp_raw_mocap)+1):\n",
" sp_velocities_mocap[participant] = {}\n",
" \n",
" j = 0\n",
" k = 1\n",
" \n",
" for markers in range (4,len(sp_raw_mocap[participant].columns)+1,3):\n",
" j=j+1\n",
" sp_velocities_mocap[participant][j] = velocity(sp_raw_mocap[participant].iloc[:,k:markers:1])\n",
" k = k+3\n",
" sp_velocities_mocap[participant][j].index = sp_velocities_mocap[participant][j]['Time (s)']\n",
" sp_velocities_mocap[participant][j] = sp_velocities_mocap[participant][j].drop(['Time (s)'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "u2AaxgG3sJyu"
},
"outputs": [],
"source": [
"sp_velocities_mocap[1][1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "IUWK7SWgMZf6"
},
"outputs": [],
"source": [
"#Concatenating velocity from all markers for each participant - HP condition\n",
"hp_vel_markers_mocap = {}\n",
"for participant in range (1,len(hp_raw_mocap)+1):\n",
" hp_vel_markers_mocap[participant] = pd.concat(hp_velocities_mocap[participant],1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "iNfI-yQgNXzO"
},
"outputs": [],
"source": [
"#Concatenating velocity from all markers for each participant - SP condition\n",
"sp_vel_markers_mocap = {}\n",
"for participant in range (1,len(sp_raw_mocap)+1):\n",
" sp_vel_markers_mocap[participant] = pd.concat(sp_velocities_mocap[participant],1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "V1i9PzSQNJDw"
},
"outputs": [],
"source": [
"#Assigning markers' names according to labelling\n",
"\n",
"marker_labels_35hp = [\"HF\", \"HL\", \"BU\", \"COM\", \"CHEST\", \"SHL\", \"SHR\", \"ELL\", \"ELR\", \"HIPL\", \"HIPR\", \"HANDL\", \"HANDR\", \"KNL\", \"KNR\", \"HEELL\", \"HEELR\", \"TOEL\", \"TOER\", \"BOARD\", \"FLOOR\"]\n",
"marker_labels_3hp = [\"HL\", \"HR\", \"BU\", \"COM\", \"CHEST\", \"SHL\", \"SHR\", \"ELL\", \"ELR\", \"HIPL\", \"HIPR\", \"HANDL\", \"HANDR\", \"KNL\", \"KNR\", \"HEELL\", \"HEELR\", \"TOEL\", \"TOER\", \"BOARD\", \"FLOOR\"]\n",
"marker_labels = [\"HF\", \"HL\", \"HR\", \"BU\", \"COM\", \"CHEST\", \"SHL\", \"SHR\", \"ELL\", \"ELR\", \"HIPL\", \"HIPR\", \"HANDL\", \"HANDR\", \"KNL\", \"KNR\", \"HEELL\", \"HEELR\", \"TOEL\", \"TOER\", \"BOARD\", \"FLOOR\"]\n",
"marker_labels_916sp = [\"HL\", \"HR\", \"BU\", \"COM\", \"CHEST\", \"SHL\", \"SHR\", \"ELL\", \"ELR\", \"HIPL\", \"HIPR\", \"HANDL\", \"HANDR\", \"KNL\", \"KNR\", \"HEELL\", \"HEELR\", \"TOEL\", \"TOER\", \"BOARD\", \"FLOOR\"]\n",
"marker_labels_1sp = [\"HF\", \"HL\", \"HR\", \"BU\", \"COM\", \"CHEST\", \"SHL\", \"SHR\", \"ELL\", \"ELR\", \"HIPL\", \"HIPR\", \"HANDL\", \"HANDR\", \"KNL\", \"KNR\", \"HEELR\", \"TOEL\", \"TOER\", \"BOARD\", \"FLOOR\"]\n",
"\n",
"hp_vel_markers_mocap[35].columns = marker_labels_35hp\n",
"hp_vel_markers_mocap[3].columns = marker_labels_3hp\n",
"sp_vel_markers_mocap[9].columns = marker_labels_916sp\n",
"sp_vel_markers_mocap[16].columns = marker_labels_916sp\n",
"sp_vel_markers_mocap[1].columns = marker_labels_1sp\n",
"\n",
"\n",
"for participant in range (1,3):\n",
" hp_vel_markers_mocap[participant].columns = marker_labels\n",
"for participant in range (4,35):\n",
" hp_vel_markers_mocap[participant].columns = marker_labels\n",
"for participant in range (36,43):\n",
" hp_vel_markers_mocap[participant].columns = marker_labels\n",
" \n",
"for participant in range (2,9):\n",
" sp_vel_markers_mocap[participant].columns = marker_labels\n",
"for participant in range (10,16):\n",
" sp_vel_markers_mocap[participant].columns = marker_labels\n",
"for participant in range (17,43):\n",
" sp_vel_markers_mocap[participant].columns = marker_labels\n",
"\n",
"for participant in range (1,len(hp_raw_mocap)+1):\n",
" hp_vel_markers_mocap[participant] = hp_vel_markers_mocap[participant].drop([\"BOARD\", \"FLOOR\"], axis=1) #removing floor and wiiboard markers data before further analysis\n",
" \n",
"for participant in range (1,len(sp_raw_mocap)+1):\n",
" sp_vel_markers_mocap[participant] = sp_vel_markers_mocap[participant].drop([\"BOARD\", \"FLOOR\"], axis=1)\n",
" \n",
"sp_vel_markers_mocap[1] #velocity, all markers participant 1, speakers condition"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "Y_IryvfB-2qh"
},
"outputs": [],
"source": [
"hp_vel_markers_mocap[35]"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "P0kXt3wfm8NQ"
},
"source": [
"## Calculating mean of velocity for all markers, all participants"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "5f91klgnnBOo"
},
"outputs": [],
"source": [
"for participant in range (1,len(sp_raw_mocap)+1):\n",
" sp_vel_markers_mocap[participant]['mean'] = sp_vel_markers_mocap[participant][sp_vel_markers_mocap[participant].columns].mean(axis=1)\n",
" sp_vel_markers_mocap[participant].loc['mean'] = sp_vel_markers_mocap[participant].mean()\n",
" \n",
" \n",
"for participant in range (1,len(hp_raw_mocap)+1):\n",
" hp_vel_markers_mocap[participant]['mean'] = hp_vel_markers_mocap[participant][hp_vel_markers_mocap[participant].columns].mean(axis=1)\n",
" hp_vel_markers_mocap[participant].loc['mean'] = hp_vel_markers_mocap[participant].mean()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "YEcdbCzDkLTJ"
},
"outputs": [],
"source": [
"hp_vel_markers_mocap[1] #velocity and mean velocity, all markers, participant 1"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "CJZeAP5rnB72"
},
"source": [
"## Smoothing velocity (TO BE DONE)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "8E2Jil1fnLn0"
},
"outputs": [],
"source": [
"hp_smooth_emg = {}\n",
"\n",
"for i in list(hp_raw_emg):\n",
" hp_smooth_emg[i] = hp_rectfd_emg[i].rolling(1000,center=True,min_periods=1).mean()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "xfOjHAQ0JU8u"
},
"outputs": [],
"source": [
"sp_smooth_emg = {}\n",
"\n",
"for i in list(sp_raw_emg):\n",
" sp_smooth_emg[i] = sp_rectfd_emg[i].rolling(1000,center=True,min_periods=1).mean()"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "FvrLr8yhVXbu"
},
"source": [
"# Splitting movement data into conditions/songs"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "PgSmSEuTScLl"
},
"outputs": [],
"source": [
"hp_songorder = pd.read_csv('drive/My Drive/UiO RITMO/HeadphonesVSSpeakers/songorderhp.csv') #Reading csv with stimuli order used for each participant during headphones condition\n",
"hp_songorder.columns = ['Participant','1', '2', '3','4', '5', '6']\n",
"hp_songorder.set_index('Participant',inplace=True, drop=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "vFvwEvVpDO6Q"
},
"outputs": [],
"source": [
"sp_songorder = pd.read_csv('drive/My Drive/UiO RITMO/HeadphonesVSSpeakers/songordersp.csv') #Reading csv with stimuli order used for each participant during speakers condition\n",
"sp_songorder.columns = ['Participant','1', '2', '3','4', '5', '6']\n",
"sp_songorder.set_index('Participant',inplace=True, drop=True)"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "G4EibbPPXSx5"
},
"source": [
"## Segmenting velocity data into music-silence segments"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "8tH41oXmFbUJ"
},
"outputs": [],
"source": [
"def segments(songorder,data):\n",
" #work in progress, works for emg data at 200Hz, song duration used in 2018 headphones-speakers experiment\n",
" #Silence 1 - 45?\n",
" #Silence 2, 3, 4, 5, 6 - 30s\n",
" #1 - - 49s\n",
" #2 - - 48s\n",
" #3 - - 47s\n",
" #4 - - 48s\n",
" #5 - - 48s\n",
" #6 - - 48s\n",
" #Silence 7 - 32s\n",
" #Total duration of recording 500s\n",
" \n",
" \n",
" start = {}\n",
" segments = {}\n",
" segments[1] = data[0:6000] #First silence segement: 30 seconds\n",
" start[1] = 0\n",
" start[2] = 6001\n",
" song = 0\n",
" \n",
" while song <= len(songorder.columns)-1:\n",
" for inicio in range (2,13,2):\n",
" if songorder.iloc[0][song] == 1:\n",
" segments[inicio]=data[start[inicio]:start[inicio]+9800] #song1 49s\n",
" segments[inicio+1]=data[start[inicio]+9801:start[inicio]+9800+6000] #30s silence\n",
" start[inicio+2] = start[inicio]+9801+6000\n",
" song = song+1 \n",
" elif songorder.iloc[0][song] == 2:\n",
" segments[inicio]=data[start[inicio]:start[inicio]+9600] #song2 48s\n",
" segments[inicio+1]=data[start[inicio]+9601:start[inicio]+9600+6000] #30s silence\n",
" start[inicio+2] = start[inicio]+9601+6000\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 3:\n",
" segments[inicio]=data[start[inicio]:start[inicio]+9400] #song3 47s\n",
" segments[inicio+1]=data[start[inicio]+9401:start[inicio]+9400+6000] #30s silence\n",
" start[inicio+2] = start[inicio]+9401+6000\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 4:\n",
" segments[inicio]=data[start[inicio]:start[inicio]+9600] #song4 48s\n",
" segments[inicio+1]=data[start[inicio]+9601:start[inicio]+9600+6000] #30s silence\n",
" start[inicio+2] = start[inicio]+9601+6000\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 5:\n",
" segments[inicio]=data[start[inicio]:start[inicio]+9600] #song5 48s\n",
" segments[inicio+1]=data[start[inicio]+9601:start[inicio]+9600+6000] #30s silence\n",
" start[inicio+2] = start[inicio]+9601+6000\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 6:\n",
" segments[inicio]=data[start[inicio]:start[inicio]+9600] #song6 48s\n",
" segments[inicio+1]=data[start[inicio]+96001:start[inicio]+9600+6000] #silence\n",
" start[inicio+2] = start[inicio]+9601+6000\n",
" song = song+1\n",
" return segments"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "EeBwFPC8QhdV"
},
"outputs": [],
"source": [
"hp_vel_mocap_segm = {} #Using segments function on headphones condition processed data for all participants\n",
"for i in list(hp_raw_mocap):\n",
" hp_vel_mocap_segm[i] = segments(hp_songorder[i-1:i],hp_vel_markers_mocap[i])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "of7BuZbcUFq5"
},
"outputs": [],
"source": [
"sp_vel_mocap_segm = {} #Using segments function on headphones condition processed data for all participants\n",
"for i in list(sp_raw_mocap):\n",
" sp_vel_mocap_segm[i] = segments(sp_songorder[i-1:i],sp_vel_markers_mocap[i])"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "sPpCc9RyXLR9"
},
"source": [
"## Grouping segmented data by music/silence condition"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "O8ktcJHiXPUk"
},
"outputs": [],
"source": [
"#Odd segments are silence, even segments are music\n",
"hp_vel_mocap_segm_mus = {} #creating empty dictionaries for music and silence\n",
"hp_vel_mocap_segm_sil = {}\n",
"\n",
"for i in list(hp_raw_mocap):\n",
" hp_vel_mocap_segm_mus[i] = {} #creating empty dictionary for each participant for both music and silence conditions\n",
" hp_vel_mocap_segm_sil[i] = {}\n",
" k = 0\n",
" \n",
" for j in range (1,13,2):\n",
" hp_vel_mocap_segm_sil[i][k] = hp_vel_mocap_segm[i][j] #filling each participant's dictionary with odd segments (silence)\n",
" hp_vel_mocap_segm_mus[i][k] = hp_vel_mocap_segm[i][j+1] #filling each participant's dictionary with even segments (music)\n",
" k=k+1\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "8cQJixOLIoHF"
},
"outputs": [],
"source": [
"#Same as above, for speakers condition\n",
"sp_vel_mocap_segm_mus = {} #creating empty dictionaries for music and silence\n",
"sp_vel_mocap_segm_sil = {}\n",
"\n",
"for i in list(sp_raw_mocap):\n",
" sp_vel_mocap_segm_mus[i] = {} #creating empty dictionary for each participant for both music and silence conditions\n",
" sp_vel_mocap_segm_sil[i] = {}\n",
" kx = 0\n",
" \n",
" for j in range (1,13,2):\n",
" sp_vel_mocap_segm_sil[i][kx] = sp_vel_mocap_segm[i][j] #filling each participant's dictionary with odd segments (silence)\n",
" sp_vel_mocap_segm_mus[i][kx] = sp_vel_mocap_segm[i][j+1] #filling each participant's dictionary with even segments (music)\n",
" kx=kx+1\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "SQXEYLxaQEf-"
},
"outputs": [],
"source": [
"sp_vel_mocap_segm_mus[3][0] #1st music segments participant 3, speakers condition"
]
},
{
"cell_type": "markdown",
"metadata": {
"colab_type": "text",
"id": "DuK3hzaJXhxR"
},
"source": [
"## Sorting music data by stimuli"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "BjpLdBmrXlsa"
},
"outputs": [],
"source": [
"## Function to sort segments from each participant with corresponding stimuli\n",
"def sort_stimuli(songorder,data):\n",
" \n",
" sorted_stimuli = {}\n",
" song = 0\n",
" while song <= len(songorder.columns)-1:\n",
" \n",
" if songorder.iloc[0][song] == 1:\n",
" sorted_stimuli[1] = data[song]\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 2:\n",
" sorted_stimuli[2] = data[song]\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 3:\n",
" sorted_stimuli[3] = data[song]\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 4:\n",
" sorted_stimuli[4] = data[song]\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 5:\n",
" sorted_stimuli[5] = data[song]\n",
" song = song+1\n",
" elif songorder.iloc[0][song] == 6:\n",
" sorted_stimuli[6] = data[song]\n",
" song = song+1\n",
" return sorted_stimuli"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "PSORZM5vnYw-"
},
"outputs": [],
"source": [
"sp_songorder #Reminding song order for the headphones condition"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "giho8P5zPDi1"
},
"outputs": [],
"source": [
"## Running stimuli-sorting function for all participants\n",
"hp_vel_mocap_sort_mus = {}\n",
"for i in list(hp_raw_mocap): \n",
" hp_vel_mocap_sort_mus[i] = sort_stimuli(hp_songorder[i-1:i],hp_vel_mocap_segm_mus[i])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "7uT-T9BuHmDI"
},
"outputs": [],
"source": [
"## Same as above, for speakers condition\n",
"sp_vel_mocap_sort_mus = {}\n",
"for i in list(sp_raw_mocap): \n",
" sp_vel_mocap_sort_mus[i] = sort_stimuli(sp_songorder[i-1:i],sp_vel_mocap_segm_mus[i])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {},
"colab_type": "code",
"id": "QeGE_CpbMDOR"
},
"outputs": [],
"source": [
"sp_vel_mocap_sort_mus[4][1] #velocity data, participant 4, song 1=Andre Bratten. Headphones condition"
]
}
],
"metadata": {
"colab": {
"collapsed_sections": [],
"name": "HeadphonesSpeakersMocap.ipynb",
"provenance": [],
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 1
}