{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function\n", "import numpy as np\n", "import pandas as pd\n", "\n", "import matplotlib.pylab as plt\n", "import matplotlib as mpl\n", "%matplotlib inline\n", "mpl.rcParams['figure.figsize'] = (14,8)\n", "pd.options.display.mpl_style = 'default'\n", "#pd.set_option('display.multi_sparse', True)\n", "\n", "from collections import OrderedDict #sorting participant df dict before pd.concat()\n", "\n", "from pprint import pprint\n", "from pprint import pformat\n", "\n", "import psutil\n", "mem_free = lambda: psutil.phymem_usage().free / 1000000\n", "mem_total = lambda: psutil.phymem_usage().total / 1000000\n", "\n", "\n", "sms_tasknames = ['T1_SMS_5', 'T1_SMS_8',\n", " 'Ticks_ISO_T2_5', 'Ticks_ISO_T2_8',\n", " 'Ticks_Linear_5', 'Ticks_Linear_8',\n", " 'Ticks_Phase_5', 'Ticks_Phase_8',\n", " 'Jits_ISO_5', 'Jits_ISO_8',\n", " 'Jits_Linear_5', 'Jits_Linear_8',\n", " 'Jits_Phase_5', 'Jits_Phase_8', ]\n", "\n", "# Participants that are excluded from all performance analysis\n", "non_english_fluent = [\n", " #'010', '014', \n", " '023', '031', \n", " '045', '050', '070', '106',]\n", "\n", "left_handed = ['042', '088',]\n", "\n", "excluded_all_tasks = non_english_fluent + left_handed # + ...\n", "excluded_pids = {t: list(excluded_all_tasks) for t in sms_tasknames}\n", "\n", "# Add task-specific exclusions\n", "# (just for testing, get real values later)\n", "#excluded_pids['T1_SMS_5'].append('101')" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Open full stored dataset\n", "\n", "pickled_dbase = \"c:/db_pickles/pickle - dbase - 2014-10-03b.pickle\"\n", "dbase = pd.read_pickle(pickled_dbase)\n", "\n", "db_pids = sorted(dbase.index.get_level_values('pid').unique())\n", "\n", "db_sms = {task: dbase.xs(task, level='task_name') \n", " for task in sms_tasknames}\n", "\n", "task_pids = {task: sorted(df.index.get_level_values('pid').unique())\n", " for task, df in db_sms.iteritems()}\n", "\n", "no_data_pids = {task: sorted(set(db_pids).difference(set(pids)))\n", " for task, pids in task_pids.iteritems()}" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "param_all_tasks = lambda v: {task: v for task in sms_tasknames}\n", "\n", "sms_params_entry = {\n", " #used in filtering step\n", " #'wait_beats_after_task_start': param_all_tasks(9),\n", " 'wait_beats_after_subj_start': param_all_tasks(12),\n", " #used in selecting correct tap from each beat\n", " 'max_length_of_obvious_bounce': param_all_tasks(30),\n", " 'max_length_of_plausible_bounce': param_all_tasks(150),\n", " #'min_percentISI_deviation_counted_as_failure': param_all_tasks(40),\n", " #used in assigning outlier status / \"outlier metric\"\n", " #'stdev_calcs_exclude_n_from_left': param_all_tasks(2),\n", " #'stdev_calcs_exclude_n_from_right': param_all_tasks(2),\n", " #'filter_outliers_beyond_x_stdevs': param_all_tasks(3), \n", " 'stimulus_timing': {\n", " 'T1_SMS_5': 'iso',\n", " 'Ticks_ISO_T2_5': 'iso',\n", " 'Ticks_Linear_5': 'linear',\n", " 'Ticks_Phase_5': 'phase',\n", " 'Jits_ISO_5': 'iso',\n", " 'Jits_Linear_5': 'linear',\n", " 'Jits_Phase_5': 'phase',\n", " 'T1_SMS_8': 'iso',\n", " 'Ticks_ISO_T2_8': 'iso',\n", " 'Ticks_Linear_8': 'linear',\n", " 'Ticks_Phase_8': 'phase',\n", " 'Jits_ISO_8': 'iso',\n", " 'Jits_Linear_8': 'linear',\n", " 'Jits_Phase_8': 'phase',\n", " },\n", " 'stimulus_style': {\n", " 'T1_SMS_5': 'tick',\n", " 'Ticks_ISO_T2_5': 'tick',\n", " 'Ticks_Linear_5': 'tick',\n", " 'Ticks_Phase_5': 'tick',\n", " 'Jits_ISO_5': 'jitter',\n", " 'Jits_Linear_5': 'jitter',\n", " 'Jits_Phase_5': 'jitter',\n", " 'T1_SMS_8': 'tick',\n", " 'Ticks_ISO_T2_8': 'tick',\n", " 'Ticks_Linear_8': 'tick',\n", " 'Ticks_Phase_8': 'tick',\n", " 'Jits_ISO_8': 'jitter',\n", " 'Jits_Linear_8': 'jitter',\n", " 'Jits_Phase_8': 'jitter',\n", " },\n", " 'ISI': {\n", " 'T1_SMS_5': 500,\n", " 'Ticks_ISO_T2_5': 500,\n", " 'Ticks_Linear_5': '(varies)',\n", " 'Ticks_Phase_5': 500,\n", " 'Jits_ISO_5': 500,\n", " 'Jits_Linear_5': '(varies)',\n", " 'Jits_Phase_5': 500,\n", " 'T1_SMS_8': 800,\n", " 'Ticks_ISO_T2_8': 800,\n", " 'Ticks_Linear_8': '(varies)',\n", " 'Ticks_Phase_8': 800,\n", " 'Jits_ISO_8': 800,\n", " 'Jits_Linear_8': '(varies)',\n", " 'Jits_Phase_8': 800,\n", " },\n", " }\n", "\n", "#reshape to task>param so parameter lists can be selected by task\n", "sms_params = {task: {param_type: taskparams[task] \n", " for (param_type, taskparams) \n", " in sms_params_entry.items()}\n", " for task in sms_tasknames}\n", "##or, equivalent but less fun:\n", "#sms_params = {t: {} for t in sms_tasknames}\n", "#for (param_name, taskparams) in sms_params_entry.items():\n", "# for task, value in taskparams.items():\n", "# sms_params[task][param_name] = value\n", "\n", "LOOP_DELAY = 2.4 # ms, roundtrip arduino-module-arduino travel time\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NO DATA:\n", "{'Jits_ISO_5': ['013', '031'],\n", " 'Jits_ISO_8': ['013', '031'],\n", " 'Jits_Linear_5': ['012', '018', '031'],\n", " 'Jits_Linear_8': ['012', '013', '031'],\n", " 'Jits_Phase_5': ['013'],\n", " 'Jits_Phase_8': ['013', '031'],\n", " 'T1_SMS_5': ['013', '031'],\n", " 'T1_SMS_8': ['013', '031'],\n", " 'Ticks_ISO_T2_5': ['013', '031'],\n", " 'Ticks_ISO_T2_8': ['013', '031'],\n", " 'Ticks_Linear_5': ['013', '031'],\n", " 'Ticks_Linear_8': ['011', '013', '031'],\n", " 'Ticks_Phase_5': ['013', '031'],\n", " 'Ticks_Phase_8': ['013', '031']}\n", "\n", "EXCLUDED:\n", "{'Jits_ISO_5': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Jits_ISO_8': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Jits_Linear_5': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Jits_Linear_8': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Jits_Phase_5': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Jits_Phase_8': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'T1_SMS_5': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'T1_SMS_8': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Ticks_ISO_T2_5': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Ticks_ISO_T2_8': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Ticks_Linear_5': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Ticks_Linear_8': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Ticks_Phase_5': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088'],\n", " 'Ticks_Phase_8': ['010', '014', '023', '031', '045', '050', '070', '106', '042', '088']}\n" ] } ], "source": [ "print('NO DATA:\\n{0}\\n\\nEXCLUDED:\\n{1}'\n", " .format(pformat(no_data_pids), \n", " pformat(excluded_pids, width=100)))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def taps_by_beats(participant_task_data, task_params):\n", " \n", " pdata = participant_task_data\n", " if len(pdata) < 1:\n", " raise ValueError('zero-length data')\n", "\n", " sstyle = task_params['stimulus_style']\n", " stiming = task_params['stimulus_timing']\n", " ISI = task_params['ISI']\n", " \n", " target_source = {'tick': 'loopback', 'jitter': 'target'}\n", " btarget_stamps = pdata.xs(target_source[sstyle], \n", " level='stamp_type')\n", "\n", " if sstyle == 'jitter':\n", " # For these tasks, we need to find the middle of the beat differently.\n", " # for other tasks, the Arduino program used the \"target\" timestamp \n", " # designation to indicate when the stimuli were sent out toward the module.\n", " # For jitter tasks, however, the 'target' stamp was placed halfway between \n", " # midpoints of distributions of jittered stimuli. \n", " # The 'target' stamp was made when serial output was sent to the PC, and\n", " # because sending serial output creates a lag in the arduino's data recording,\n", " # the output needed to be sent at a time that we didn't need to be keeping close\n", " # track of incoming performance data, i.e., halfway between the stimulus \n", " # distribution midpoints. \n", " # Memory constraints prevented the program from just holding onto all of the\n", " # data until a serial dump at the end of the task, which is what was done\n", " # for the other tasks, where there were fewer stimulus events to keep track of.\n", " \n", " # Subtract 250 or 400 ms from each 'target' stamp to estimate the midpoint of \n", " # the generating distribution for the randomly-jittered stimuli. \n", " if stiming == 'iso':\n", " adjust = (-1 * ISI / 2) \n", " # here, \"adjust\" is a series. find the middle of the beat based on the current\n", " # beat duration (and still halfway between the \"target\" designation in output)\n", " elif stiming == 'phase':\n", " #evaluate this!\n", " adjust = (-1 * ISI / 2) \n", " elif stiming == 'linear':\n", " intervals = btarget_stamps.task_ms - btarget_stamps.task_ms.shift(1)\n", " adjust = (-1 * intervals / 2)\n", " else:\n", " raise ValueError\n", " \n", " #LOOP_DELAY defined above (2.4):\n", " # 2.4 ms == average midi travel time. 'target' was stamped at arduino output\n", " # time, and stimuli/taps were stamped at arduino input time. Roundtrip from\n", " # arduino to module to arduino is about 2.4 ms on average.\n", " \n", " # tricky: we're using 'adjust' as a scalar for 'iso', \n", " # and using it as a series for 'linear'!\n", " \n", " btarget_stamps.task_ms = (btarget_stamps.task_ms + \n", " adjust + LOOP_DELAY)\n", " # Need to set up for 'phase' tasks above. When running phase task:\n", " #UnboundLocalError: local variable 'adjust' referenced before assignment\n", " btarget_stamps.micros = (btarget_stamps.micros + \n", " (1000 * (adjust + LOOP_DELAY)))\n", "\n", " #Could also experiment with this: do participants tap closer to a consistent\n", " #center-of-distribution-as-calculated beat? Or do they tap closer to the\n", " #actual empirical timings that were produced for the stimuli? Or do they\n", " #just tap along with a particular instrument?\n", " \n", " \n", " # assign beat numbers for loopback stimuli measurements, \n", " # and set a range of -1/2 interval to +1/2 interval to \n", " # group the tap/stim events into beats.\n", " \n", " # add a new index (zero-indexed) for beats\n", " btarget_stamps.index = range(len(btarget_stamps))\n", " btargets = pd.DataFrame(btarget_stamps)\n", " btargets.index.name = 'beat'\n", " btargets['stamp'] = 'btarget'\n", " btargets.set_index('stamp', append=True, inplace=True) \n", " assert btargets.index.names == ('beat', 'stamp')\n", "\n", " #first beat would get NaN values, so set the start of beat 0 to 0 ms\n", " btarget_stamps.loc[0, 'task_ms'] = 0\n", " #print(btargets)\n", " assert btargets.iloc[0].task_ms == 0 \n", " \n", " #calculate interval between btargets (already had this as 'int_raw',\n", " # but it might be useful to be able to recalculate this from particular\n", " # subsets of the stimulus later, e.g., center of jitter group?)\n", " btargets['beat_target'] = tstamp = btargets.task_ms \n", " btargets['tinterval'] = tstamp - tstamp.shift(1)\n", " int_change = btargets.tinterval - btargets.shift(1).tinterval\n", " btargets['target_spiked'] = (abs(int_change) > 15)\n", "\n", " btargets['beat_start'] = tstamp.shift(1) + (btargets.tinterval / 2)\n", " btargets['beat_start'].iloc[0] = 0.0 # shift(1) left a leading NaN\n", " \n", " btargets['beat_end'] = btargets.shift(-1).beat_start \n", " # shift(-1) left a trailing NaN. Estimate using the previous interval\n", " end = btargets.iloc[-1].beat_target + (btargets.iloc[-1].tinterval / 2)\n", " btargets['beat_end'].iloc[-1] = end \n", " \n", "\n", " #pull out the taps series and then assign to the beats created above. \n", " taps = pd.DataFrame(pdata.xs('tap_r', level='stamp_type'))\n", " taps['stamp'] = 'tap'\n", " taps.set_index('stamp', inplace=True) \n", " \n", " beatset = btargets\n", " for beatnum, stampname in btargets.index.values: #e.g., 0 to 119 for SMS800 T2\n", " target_df = btargets.xs(beatnum, level='beat', drop_level=False)\n", " assert target_df.shape[0] == 1 \n", " assert target_df['task_ms'].count() == 1\n", " target = target_df.iloc[0] \n", " taps_in_beat = taps[(taps.task_ms >= target.beat_start) &\n", " (taps.task_ms < target.beat_end)] \n", " taps_in_beat['beat_start'] = target.beat_start\n", " taps_in_beat['beat_end'] = target.beat_end\n", " taps_in_beat['beat_target'] = target.task_ms \n", " taps_in_beat['beat'] = beatnum \n", " taps_in_beat = taps_in_beat.set_index('beat', append=True)\n", " taps_in_beat = taps_in_beat.swaplevel('beat', 'stamp')\n", " beatset = beatset.append(taps_in_beat)\n", " beatset = beatset.sort()\n", "\n", " beatgroups = beatset.groupby(level='beat')\n", " def deviations(beatgrp):\n", " targetdf = beatgrp.xs('btarget', level='stamp')\n", " assert len(targetdf.index) == 1\n", " target = targetdf.iloc[0] \n", " beatgrp['dev'] = beatgrp.task_ms - target.task_ms\n", " beatgrp['dev_perc'] = 100 * beatgrp.dev / target.tinterval\n", " #the above formula will be incorrect for the first beat (the \n", " #interval is half-length) but we're discarding initial beats anyway.\n", " return beatgrp\n", " beatgroups = beatgroups.apply(deviations)\n", " \n", " remdevs = beatgroups.xs('btarget', level='stamp')\n", " remdevs.dev = np.nan\n", " remdevs.dev_perc = np.nan \n", " \n", " return beatgroups.sort()\n", " " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "phase_shift_beats = {800: \n", " {30: -20,\n", " 48: +20,\n", " 64: +40,\n", " 81: -40,\n", " 97: -80,\n", " 114: +80,\n", " 131: +160,\n", " 150: -160},\n", " 500: \n", " {64: +20,\n", " 81: -20,\n", " 97: -50,\n", " 114: +50,\n", " 131: +100,\n", " 150: -100} }\n", "\n", "\n", "def add_phase_shift_info(participant_task_data, task_params):\n", " \n", " df = participant_task_data \n", " ISI = task_params['ISI']\n", " stiming = task_params['stimulus_timing']\n", " assert stiming == 'phase'\n", "\n", " shifts = phase_shift_beats[ISI]\n", " shift_beats = sorted(shifts.keys())\n", " beatnums = sorted(set(df.index.get_level_values('beat')))\n", "\n", " df['shifted_ms_before_target'] = np.nan\n", " df['last_shift_val'] = np.nan\n", " \n", " for b in beatnums:\n", " \n", " previous_beats = range(b)\n", " previous_shift_beats = [s for s in shift_beats if s in previous_beats]\n", "\n", " if b in shift_beats:\n", "\n", " df.loc[(b, 'target'), 'shifted_ms_before_target'] = 0\n", " df.loc[(b, 'target'), 'last_shift_val'] = shifts[b]\n", "\n", " elif not previous_shift_beats:\n", "\n", " df.loc[(b, 'target'), 'last_shift_val'] = np.nan\n", " df.loc[(b, 'target'), 'shifted_ms_before_target'] = np.inf\n", "\n", " else:\n", "\n", " last_shift_beat = max(previous_shift_beats)\n", " last_shift_beat_time = df.loc[(last_shift_beat, 'target')].task_ms\n", "\n", " last_shift_beat_amount = shifts[last_shift_beat]\n", " last_shift_ms_ago = df.loc[(b, 'target')].task_ms - last_shift_beat_time\n", "\n", " df.loc[(b, 'target'), 'last_shift_val'] = last_shift_beat_amount\n", " df.loc[(b, 'target'), 'shifted_ms_before_target'] = last_shift_ms_ago\n", "\n", "\n", " lsv = df.loc[(b, 'target'), 'last_shift_val']\n", " df.loc[(b, 'tap'), 'last_shift_val'] = lsv\n", "\n", " smbt = df.loc[(b, 'target'), 'shifted_ms_before_target']\n", " df.loc[(b, 'tap'), 'shifted_ms_before_target'] = smbt\n", "\n", "\n", " return df\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def select_best_tap(beat, task_params):\n", " ''' Input: taps only (no stimuli), for a single beat\n", " Output: a single tap, counted as the proper attempt for this beat'''\n", " #Remember: always return a row (iloc[0]), not the whole 'beat' group.\n", " #Otherwise the combined output does weird things like duplicating the index.\n", " len_obviousbounce = task_params['max_length_of_obvious_bounce']\n", " len_plausiblebounce = task_params['max_length_of_plausible_bounce']\n", " #dev_failure = task_params['min_deviation_counted_as_failure']\n", " #devperc_failure = task_params['min_percentISI_deviation_counted_as_failure']\n", " \n", " #print(beat)\n", " \n", " targetdf = beat.xs('btarget', level='stamp')\n", " assert len(targetdf.index) == 1\n", " target = targetdf.iloc[0]\n", " target_int = target.tinterval\n", " target_ms = target.task_ms\n", " \n", " taps = beat.xs('tap', level='stamp') \n", " tapcount = len(taps.index)\n", "\n", " taps['selection_case'] = np.nan\n", " taps['multiple_taskms'] = \"\" \n", " \n", " if tapcount < 1: \n", " return None\n", " \n", " # Case 1: Only one tap registered for this beat.\n", " if tapcount == 1:\n", " taps.selection_case = 1\n", " return taps.iloc[0]\n", " \n", " first = taps.iloc[0]\n", " second = taps.iloc[1]\n", " last = taps.iloc[-1]\n", " all_task_ms = taps.task_ms.tolist()\n", " \n", " assert first.task_ms < second.task_ms <= last.task_ms\n", " assert first.beat_target == second.beat_target == last.beat_target\n", " #target = first.beat_target\n", " # (changed to target_ms calculated above)\n", " \n", " \n", " # Case 2: Very quick bounces-- keep timing of first\n", " # but set velocity to whichever is loudest.\n", " \n", " if (last.task_ms - first.task_ms <= len_obviousbounce):\n", " selection_case = 2\n", " selected = taps[taps.task_ms == first.task_ms]\n", " selected.velocity = taps.velocity.max()\n", " \n", " # Case 3: Slower bounces, but the taps aren't extremely far apart.\n", " # Keep the first, but retain the velocity of that tap \n", " # (rather than getting the \"peak\" as in Case 2).\n", " \n", " elif (last.task_ms - first.task_ms <= len_plausiblebounce): \n", " selection_case = 3\n", " selected = taps[taps.task_ms == first.task_ms]\n", " \n", " # Case 4: Not a bounce (they're too far apart to be a quick bounce,\n", " # and it's not likely to be a slow bounce because Case 3\n", " # wasn't satisfied), but there are two taps. Perhaps the\n", " # participant is trying to realign. Keep the closest tap.\n", " # (this shouldn't happen often, so check the output for\n", " # the number of selection_case=4 entries.)\n", " \n", " else:\n", " selection_case = 4\n", " smallest_perc_dev = taps.dev_perc.apply(abs).min()\n", " selected = taps[abs(taps.dev_perc) == smallest_perc_dev]\n", "\n", " try:\n", " assert len(selected) == 1\n", " except AssertionError:\n", " print('selection case was %s' % selection_case)\n", " print('number of selected taps was %s' % len(selected))\n", " raise\n", " \n", " selectedt = selected.iloc[0]\n", " selectedt.selection_case = selection_case\n", " \n", " multiple_tap_info = ','.join([str(int(t)) for t in all_task_ms])\n", " selectedt.multiple_taskms = multiple_tap_info #includes the retained tap\n", "\n", " return selectedt\n", " \n", " \n", " # Case 5: above cases didn't apply.\n", " # Unusual (for SMS800, happened 11 times across\n", " # eight participants among the full sample). \n", " # Here, we've established that we just keep the highest-velocity tap.\n", " #else:\n", " # selected = taps[taps.velocity == taps.velocity.min()]\n", " # if len(selected) > 1:\n", " # selected = selected[selected.dev == selected.dev.min()]\n", " # assert len(selected) == 1\n", " # selected['selection_case'] = 5\n", " # return selected.iloc[0]\n", " \n", " # Selection will fall through to case 5 if beats are set up incorrectly.\n", " # In bug testing I found that final intervals ended too late, so the\n", " # point where a participant does one final tap after the task has actually\n", " # ended was included in this interval. This situation didn't fit any of\n", " # cases 1-3 because the taps were so far apart. Then it didn't fit case 4\n", " # because the first tap (which was actually supposed to be in that beat)\n", " # was very close to the target, whereas the last tap (which was after the\n", " # task ended) was very far away from the target." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def print_task_info(taskname):\n", " print('\\n' + ('='*70))\n", " print('* ' + taskname)\n", " print('* No data for IDs: {}'.format(', '.join(no_data_pids[taskname])))\n", " print('* IDs excluded: {}'.format(', '.join(excluded_pids[taskname])))\n", " print('-'*40)\n", "\n", "#def progress_wave(i):\n", "# print(\"_.~*^`=~-.\"[int(i) % 10], end='')\n", "# return" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def sms_task_processing(participant_data, task_params, print_beats=False):\n", "\n", " participant_data.drop(['int_raw', 'run_count', 'task_id'],\n", " axis=1, inplace=True)\n", "\n", " beats = taps_by_beats(participant_data, task_params)\n", " \n", " if print_beats: \n", " print(beats)\n", " \n", " beatgroups = beats.groupby(level='beat')\n", " selected = beatgroups.apply(lambda g: select_best_tap(g, task_params))\n", "\n", " # convenient way of identifying the blank 'tap' items in the series\n", " # that were inserted during select_best_tap() whenever the number of \n", " # taps in a beat was zero.\n", " selected['is_failure'] = np.isnan(selected.micros)\n", " \n", " selected['ints'] = selected.task_ms - selected.task_ms.shift(1)\n", "\n", " targets = beats.xs('btarget', level='stamp')\n", " \n", " #Run filters later-- we\n", " #want to keep all of the data for now, except decisions that we\n", " #have to make immediately (mainly, which tap to keep in intervals\n", " #that contain multiple taps, as selected above by select_best_tap().)\n", "\n", " #filtered = filter_taps(...) #moved to part 4 notebook\n", " #filtered[filtered.is_outlier]\n", " \n", " combined = pd.concat([selected, targets], \n", " keys=['tap','target'], \n", " names=['stamp'])\n", " \n", " combined = combined.swaplevel('beat', 'stamp').sort()\n", " \n", " if task_params['stimulus_timing'] == 'phase':\n", " combined = add_phase_shift_info(combined, task_params)\n", " \n", "\n", " return combined" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "======================================================================\n", "* T1_SMS_5\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3418 megs free memory\n", "057,099,\n", "======================================================================\n", "* T1_SMS_8\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3403 megs free memory\n", "033,077,119,\n", "======================================================================\n", "* Ticks_ISO_T2_5\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3408 megs free memory\n", "055,097,\n", "======================================================================\n", "* Ticks_ISO_T2_8\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3395 megs free memory\n", "030,075,117,\n", "======================================================================\n", "* Ticks_Linear_5\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3396 megs free memory\n", "053,095,\n", "======================================================================\n", "* Ticks_Linear_8\n", "* No data for IDs: 011, 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3411 megs free memory\n", "029,074,116,\n", "======================================================================\n", "* Ticks_Phase_5\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3398 megs free memory\n", "052,094,\n", "======================================================================\n", "* Ticks_Phase_8\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3389 megs free memory\n", "027,072,114,\n", "======================================================================\n", "* Jits_ISO_5\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3393 megs free memory\n", "049,092,\n", "======================================================================\n", "* Jits_ISO_8\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3665 megs free memory\n", "025,069,112,\n", "======================================================================\n", "* Jits_Linear_5\n", "* No data for IDs: 012, 018, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3630 megs free memory\n", "048,091,\n", "======================================================================\n", "* Jits_Linear_8\n", "* No data for IDs: 012, 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3564 megs free memory\n", "025,069,112,\n", "======================================================================\n", "* Jits_Phase_5\n", "* No data for IDs: 013\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3599 megs free memory\n", "047,090,\n", "======================================================================\n", "* Jits_Phase_8\n", "* No data for IDs: 013, 031\n", "* IDs excluded: 010, 014, 023, 031, 045, 050, 070, 106, 042, 088\n", "----------------------------------------\n", "3601 megs free memory\n", "022,067,110," ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Applications\\_Data analysis\\Anaconda\\lib\\site-packages\\pandas\\core\\generic.py:1858: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.\n", "Try using .loc[row_index,col_indexer] = value instead\n", " self[name] = value\n" ] } ], "source": [ "def process_sms_task_set(sms_params, testing_subset=False):\n", " \n", " import psutil\n", " \n", " task_frames = OrderedDict()\n", " task_pid_iteration = 0\n", " \n", " for taskname in sms_tasknames:\n", " \n", " #testing out phase tasks only\n", " #if 'Phase' not in taskname:\n", " # continue\n", " ########\n", " \n", " task_data = db_sms[taskname]\n", " task_params = sms_params[taskname]\n", " pids_using = [p for p in task_pids[taskname] \n", " if p not in excluded_pids[taskname]]\n", " \n", " print_task_info(taskname)\n", " \n", " mem_free = psutil.virtual_memory()[1] / 1000000\n", " print(\"{} megs free memory\".format(mem_free))\n", " \n", " pid_frames = OrderedDict()\n", " \n", " for pid in pids_using:\n", " \n", " task_pid_iteration += 1\n", " \n", " if testing_subset and (task_pid_iteration % testing_subset != 0):\n", " #for testing: skip all except every N task/participant combos\n", " continue\n", " \n", " print(pid + ',', end='')\n", " \n", " participant_data = task_data.xs(pid, level='pid')\n", " \n", " processed = sms_task_processing(participant_data, \n", " task_params) \n", " pid_frames[pid] = processed \n", " \n", " task_finished = pd.concat(pid_frames,\n", " keys=pid_frames.keys(), \n", " names=['pid'])\n", " \n", " task_frames[taskname] = task_finished\n", "\n", " return task_frames\n", " \n", "\n", "tframes = process_sms_task_set(sms_params=sms_params,\n", " testing_subset=40,\n", " )\n", "\n", "import cPickle as pickle\n", "#output_file=\"c:/db_pickles/pickle - smsbeats - 2014-10-03b.pickle\"\n", "output_file=\"c:/db_pickles/pickle - smsbeats - 2014-10-12a SUBSET.pickle\"\n", "pickle.dump(tframes, open(output_file, \"wb\"))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T1_SMS_5\n" ] }, { "data": { "text/html": [ "
\n", " | \n", " | \n", " | beat_end | \n", "beat_start | \n", "beat_target | \n", "dev | \n", "dev_perc | \n", "ints | \n", "target_spiked | \n", "task_ms | \n", "tinterval | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|
pid | \n", "beat | \n", "stamp | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
011 | \n", "0 | \n", "tap | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
5 | \n", "tap | \n", "2749.968 | \n", "2249.638 | \n", "2499.580 | \n", "10.124 | \n", "2.025270 | \n", "435.608 | \n", "NaN | \n", "2509.704 | \n", "NaN | \n", "|
10 | \n", "tap | \n", "5250.118 | \n", "4750.394 | \n", "5000.260 | \n", "-17.716 | \n", "-3.545100 | \n", "504.148 | \n", "NaN | \n", "4982.544 | \n", "NaN | \n", "|
15 | \n", "tap | \n", "7750.044 | \n", "7249.908 | \n", "7499.700 | \n", "-11.688 | \n", "-2.339547 | \n", "505.064 | \n", "NaN | \n", "7488.012 | \n", "NaN | \n", "|
20 | \n", "tap | \n", "10250.200 | \n", "9749.908 | \n", "10000.296 | \n", "-4.692 | \n", "-0.936946 | \n", "492.872 | \n", "NaN | \n", "9995.604 | \n", "NaN | \n", "|
25 | \n", "tap | \n", "12749.804 | \n", "12250.000 | \n", "12499.864 | \n", "-38.144 | \n", "-7.632952 | \n", "453.184 | \n", "NaN | \n", "12461.720 | \n", "NaN | \n", "|
30 | \n", "tap | \n", "15250.610 | \n", "14750.240 | \n", "15000.712 | \n", "0.900 | \n", "0.179661 | \n", "503.968 | \n", "NaN | \n", "15001.612 | \n", "NaN | \n", "|
35 | \n", "tap | \n", "17749.886 | \n", "17250.188 | \n", "17500.016 | \n", "-13.640 | \n", "-2.729878 | \n", "502.208 | \n", "NaN | \n", "17486.376 | \n", "NaN | \n", "|
40 | \n", "tap | \n", "20250.028 | \n", "19749.726 | \n", "19999.556 | \n", "-14.164 | \n", "-2.834728 | \n", "496.800 | \n", "NaN | \n", "19985.392 | \n", "NaN | \n", "|
45 | \n", "tap | \n", "22750.154 | \n", "22249.968 | \n", "22500.400 | \n", "-9.204 | \n", "-1.837625 | \n", "505.748 | \n", "NaN | \n", "22491.196 | \n", "NaN | \n", "|
50 | \n", "tap | \n", "25249.724 | \n", "24750.588 | \n", "24999.892 | \n", "-13.336 | \n", "-2.674646 | \n", "487.224 | \n", "NaN | \n", "24986.556 | \n", "NaN | \n", "|
55 | \n", "tap | \n", "27750.206 | \n", "27249.982 | \n", "27500.340 | \n", "4.188 | \n", "0.836402 | \n", "532.748 | \n", "NaN | \n", "27504.528 | \n", "NaN | \n", "|
60 | \n", "tap | \n", "30249.932 | \n", "29750.162 | \n", "30000.028 | \n", "23.208 | \n", "4.644089 | \n", "465.076 | \n", "NaN | \n", "30023.236 | \n", "NaN | \n", "|
65 | \n", "tap | \n", "32750.150 | \n", "32249.926 | \n", "32499.944 | \n", "3.364 | \n", "0.672752 | \n", "532.828 | \n", "NaN | \n", "32503.308 | \n", "NaN | \n", "|
70 | \n", "tap | \n", "35250.014 | \n", "34749.834 | \n", "35000.112 | \n", "-5.292 | \n", "-1.057224 | \n", "486.940 | \n", "NaN | \n", "34994.820 | \n", "NaN | \n", "|
75 | \n", "tap | \n", "37749.674 | \n", "37250.032 | \n", "37499.712 | \n", "24.332 | \n", "4.872637 | \n", "513.716 | \n", "NaN | \n", "37524.044 | \n", "NaN | \n", "|
80 | \n", "tap | \n", "40250.296 | \n", "39750.148 | \n", "40000.500 | \n", "-6.872 | \n", "-1.372468 | \n", "459.648 | \n", "NaN | \n", "39993.628 | \n", "NaN | \n", "|
85 | \n", "tap | \n", "42749.930 | \n", "42250.200 | \n", "42500.064 | \n", "-2.360 | \n", "-0.472257 | \n", "484.304 | \n", "NaN | \n", "42497.704 | \n", "NaN | \n", "|
90 | \n", "tap | \n", "45249.952 | \n", "44749.768 | \n", "44999.560 | \n", "7.420 | \n", "1.485236 | \n", "487.184 | \n", "NaN | \n", "45006.980 | \n", "NaN | \n", "|
95 | \n", "tap | \n", "47750.228 | \n", "47250.418 | \n", "47500.324 | \n", "8.396 | \n", "1.679832 | \n", "549.236 | \n", "NaN | \n", "47508.720 | \n", "NaN | \n", "|
100 | \n", "tap | \n", "50249.814 | \n", "49750.156 | \n", "50000.136 | \n", "-9.356 | \n", "-1.871350 | \n", "501.908 | \n", "NaN | \n", "49990.780 | \n", "NaN | \n", "|
105 | \n", "tap | \n", "52750.282 | \n", "52250.136 | \n", "52500.376 | \n", "-29.800 | \n", "-5.954284 | \n", "468.220 | \n", "NaN | \n", "52470.576 | \n", "NaN | \n", "|
110 | \n", "tap | \n", "55249.858 | \n", "54750.092 | \n", "54999.996 | \n", "28.544 | \n", "5.710993 | \n", "517.924 | \n", "NaN | \n", "55028.540 | \n", "NaN | \n", "|
115 | \n", "tap | \n", "57749.990 | \n", "57249.802 | \n", "57499.784 | \n", "63.804 | \n", "12.761719 | \n", "568.684 | \n", "NaN | \n", "57563.588 | \n", "NaN | \n", "|
120 | \n", "tap | \n", "60250.056 | \n", "59750.432 | \n", "60000.228 | \n", "13.284 | \n", "2.658970 | \n", "521.856 | \n", "NaN | \n", "60013.512 | \n", "NaN | \n", "|
125 | \n", "tap | \n", "62750.180 | \n", "62249.960 | \n", "62499.788 | \n", "33.736 | \n", "6.751845 | \n", "526.728 | \n", "NaN | \n", "62533.524 | \n", "NaN | \n", "|
012 | \n", "0 | \n", "tap | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
5 | \n", "tap | \n", "2750.556 | \n", "2250.862 | \n", "2500.764 | \n", "39.068 | \n", "7.816664 | \n", "494.468 | \n", "NaN | \n", "2539.832 | \n", "NaN | \n", "|
10 | \n", "tap | \n", "5250.582 | \n", "4750.474 | \n", "5000.232 | \n", "5.016 | \n", "1.004172 | \n", "529.680 | \n", "NaN | \n", "5005.248 | \n", "NaN | \n", "|
15 | \n", "tap | \n", "7750.782 | \n", "7250.558 | \n", "7500.912 | \n", "-33.112 | \n", "-6.613036 | \n", "487.852 | \n", "NaN | \n", "7467.800 | \n", "NaN | \n", "|
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
120 | \n", "110 | \n", "tap | \n", "55249.474 | \n", "54749.292 | \n", "54999.140 | \n", "-10.808 | \n", "-2.162915 | \n", "522.824 | \n", "NaN | \n", "54988.332 | \n", "NaN | \n", "
115 | \n", "tap | \n", "57749.534 | \n", "57249.764 | \n", "57499.612 | \n", "-16.416 | \n", "-3.285197 | \n", "487.204 | \n", "NaN | \n", "57483.196 | \n", "NaN | \n", "|
120 | \n", "tap | \n", "60250.400 | \n", "59750.144 | \n", "60000.700 | \n", "-1.336 | \n", "-0.266607 | \n", "514.700 | \n", "NaN | \n", "59999.364 | \n", "NaN | \n", "|
125 | \n", "tap | \n", "62749.702 | \n", "62249.370 | \n", "62499.776 | \n", "-2.800 | \n", "-0.559092 | \n", "502.836 | \n", "NaN | \n", "62496.976 | \n", "NaN | \n", "|
121 | \n", "0 | \n", "tap | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
5 | \n", "tap | \n", "2749.818 | \n", "2249.600 | \n", "2499.448 | \n", "17.028 | \n", "3.407672 | \n", "439.152 | \n", "NaN | \n", "2516.476 | \n", "NaN | \n", "|
10 | \n", "tap | \n", "5249.968 | \n", "4749.822 | \n", "5000.156 | \n", "-18.584 | \n", "-3.711841 | \n", "501.488 | \n", "NaN | \n", "4981.572 | \n", "NaN | \n", "|
15 | \n", "tap | \n", "7749.570 | \n", "7249.802 | \n", "7499.612 | \n", "30.572 | \n", "6.119050 | \n", "525.276 | \n", "NaN | \n", "7530.184 | \n", "NaN | \n", "|
20 | \n", "tap | \n", "10250.096 | \n", "9749.918 | \n", "10000.248 | \n", "-13.568 | \n", "-2.710023 | \n", "476.644 | \n", "NaN | \n", "9986.680 | \n", "NaN | \n", "|
25 | \n", "tap | \n", "12749.754 | \n", "12250.020 | \n", "12500.016 | \n", "-26.292 | \n", "-5.258484 | \n", "520.188 | \n", "NaN | \n", "12473.724 | \n", "NaN | \n", "|
30 | \n", "tap | \n", "15249.836 | \n", "14749.618 | \n", "14999.392 | \n", "-14.244 | \n", "-2.851378 | \n", "503.888 | \n", "NaN | \n", "14985.148 | \n", "NaN | \n", "|
35 | \n", "tap | \n", "17749.958 | \n", "17250.156 | \n", "17500.040 | \n", "29.452 | \n", "5.893134 | \n", "525.052 | \n", "NaN | \n", "17529.492 | \n", "NaN | \n", "|
40 | \n", "tap | \n", "20249.552 | \n", "19749.744 | \n", "19999.704 | \n", "-15.216 | \n", "-3.043687 | \n", "494.316 | \n", "NaN | \n", "19984.488 | \n", "NaN | \n", "|
45 | \n", "tap | \n", "22750.056 | \n", "22249.776 | \n", "22500.172 | \n", "-37.584 | \n", "-7.504912 | \n", "501.492 | \n", "NaN | \n", "22462.588 | \n", "NaN | \n", "|
50 | \n", "tap | \n", "25249.692 | \n", "24749.880 | \n", "24999.692 | \n", "-24.120 | \n", "-4.827630 | \n", "502.540 | \n", "NaN | \n", "24975.572 | \n", "NaN | \n", "|
55 | \n", "tap | \n", "27749.884 | \n", "27249.776 | \n", "27499.736 | \n", "-29.580 | \n", "-5.916947 | \n", "525.868 | \n", "NaN | \n", "27470.156 | \n", "NaN | \n", "|
60 | \n", "tap | \n", "30249.964 | \n", "29750.194 | \n", "30000.004 | \n", "-24.268 | \n", "-4.857292 | \n", "503.884 | \n", "NaN | \n", "29975.736 | \n", "NaN | \n", "|
65 | \n", "tap | \n", "32750.106 | \n", "32249.864 | \n", "32499.896 | \n", "-42.092 | \n", "-8.417323 | \n", "485.408 | \n", "NaN | \n", "32457.804 | \n", "NaN | \n", "|
70 | \n", "tap | \n", "35249.960 | \n", "34749.924 | \n", "35000.076 | \n", "9.032 | \n", "1.805302 | \n", "515.052 | \n", "NaN | \n", "35009.108 | \n", "NaN | \n", "|
75 | \n", "tap | \n", "37749.772 | \n", "37249.890 | \n", "37499.812 | \n", "-40.500 | \n", "-8.102528 | \n", "510.684 | \n", "NaN | \n", "37459.312 | \n", "NaN | \n", "|
80 | \n", "tap | \n", "40249.858 | \n", "39749.714 | \n", "39999.636 | \n", "-58.824 | \n", "-11.768472 | \n", "480.248 | \n", "NaN | \n", "39940.812 | \n", "NaN | \n", "|
85 | \n", "tap | \n", "42749.792 | \n", "42250.170 | \n", "42499.980 | \n", "-24.888 | \n", "-4.981386 | \n", "500.420 | \n", "NaN | \n", "42475.092 | \n", "NaN | \n", "|
90 | \n", "tap | \n", "45249.896 | \n", "44749.680 | \n", "44999.524 | \n", "-7.888 | \n", "-1.578585 | \n", "486.436 | \n", "NaN | \n", "44991.636 | \n", "NaN | \n", "|
95 | \n", "tap | \n", "47750.028 | \n", "47249.860 | \n", "47500.292 | \n", "-24.640 | \n", "-4.919499 | \n", "490.172 | \n", "NaN | \n", "47475.652 | \n", "NaN | \n", "|
100 | \n", "tap | \n", "50249.664 | \n", "49749.856 | \n", "49999.740 | \n", "-20.748 | \n", "-4.151526 | \n", "502.612 | \n", "NaN | \n", "49978.992 | \n", "NaN | \n", "|
105 | \n", "tap | \n", "52749.898 | \n", "52249.494 | \n", "52499.416 | \n", "-15.592 | \n", "-3.119373 | \n", "497.748 | \n", "NaN | \n", "52483.824 | \n", "NaN | \n", "|
110 | \n", "tap | \n", "55249.770 | \n", "54750.224 | \n", "54999.960 | \n", "-8.040 | \n", "-1.609700 | \n", "507.476 | \n", "NaN | \n", "54991.920 | \n", "NaN | \n", "|
115 | \n", "tap | \n", "57749.962 | \n", "57249.706 | \n", "57499.628 | \n", "-32.116 | \n", "-6.425205 | \n", "506.060 | \n", "NaN | \n", "57467.512 | \n", "NaN | \n", "|
120 | \n", "tap | \n", "60250.120 | \n", "59749.900 | \n", "60000.420 | \n", "-56.652 | \n", "-11.306882 | \n", "497.452 | \n", "NaN | \n", "59943.768 | \n", "NaN | \n", "|
125 | \n", "tap | \n", "62749.646 | \n", "62249.984 | \n", "62499.720 | \n", "-16.116 | \n", "-3.226607 | \n", "495.284 | \n", "NaN | \n", "62483.604 | \n", "NaN | \n", "
2626 rows × 9 columns
\n", "\n", " | \n", " | \n", " | beat_end | \n", "beat_start | \n", "beat_target | \n", "channel | \n", "dev | \n", "dev_perc | \n", "i | \n", "interval | \n", "ints | \n", "is_failure | \n", "micros | \n", "pitch | \n", "selection_case | \n", "target_spiked | \n", "task_ms | \n", "velocity | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pid | \n", "beat | \n", "stamp | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
094 | \n", "8 | \n", "tap | \n", "4259.732 | \n", "3759.942 | \n", "4009.860 | \n", "1 | \n", "-22.452 | \n", "-4.491873 | \n", "12 | \n", "NaN | \n", "514.660 | \n", "False | \n", "672423420 | \n", "48 | \n", "3 | \n", "NaN | \n", "3987.408 | \n", "50 | \n", "
17 | \n", "tap | \n", "8769.866 | \n", "8269.630 | \n", "8519.508 | \n", "1 | \n", "-8.112 | \n", "-1.623192 | \n", "31 | \n", "NaN | \n", "487.772 | \n", "False | \n", "676947408 | \n", "48 | \n", "3 | \n", "NaN | \n", "8511.396 | \n", "53 | \n", "|
28 | \n", "tap | \n", "14275.570 | \n", "13770.170 | \n", "14020.380 | \n", "1 | \n", "-60.768 | \n", "-12.143400 | \n", "54 | \n", "NaN | \n", "496.168 | \n", "False | \n", "682395624 | \n", "48 | \n", "3 | \n", "NaN | \n", "13959.612 | \n", "55 | \n", "|
49 | \n", "tap | \n", "24779.726 | \n", "24279.900 | \n", "24529.784 | \n", "1 | \n", "42.664 | \n", "8.536761 | \n", "98 | \n", "NaN | \n", "576.992 | \n", "False | \n", "693008460 | \n", "48 | \n", "3 | \n", "NaN | \n", "24572.448 | \n", "47 | \n", "|
67 | \n", "tap | \n", "33799.908 | \n", "33299.854 | \n", "33550.000 | \n", "1 | \n", "-42.352 | \n", "-8.465456 | \n", "134 | \n", "NaN | \n", "511.516 | \n", "False | \n", "701943660 | \n", "48 | \n", "3 | \n", "NaN | \n", "33507.648 | \n", "56 | \n", "|
75 | \n", "tap | \n", "37799.752 | \n", "37300.034 | \n", "37549.808 | \n", "1 | \n", "8.440 | \n", "1.689527 | \n", "152 | \n", "NaN | \n", "552.828 | \n", "False | \n", "705994260 | \n", "48 | \n", "3 | \n", "NaN | \n", "37558.248 | \n", "51 | \n", "|
79 | \n", "tap | \n", "39799.738 | \n", "39299.886 | \n", "39549.756 | \n", "1 | \n", "-75.872 | \n", "-15.182295 | \n", "160 | \n", "NaN | \n", "429.068 | \n", "False | \n", "707909896 | \n", "48 | \n", "3 | \n", "NaN | \n", "39473.884 | \n", "54 | \n", "|
80 | \n", "tap | \n", "40289.684 | \n", "39799.738 | \n", "40049.720 | \n", "1 | \n", "-58.344 | \n", "-11.669640 | \n", "163 | \n", "NaN | \n", "517.492 | \n", "False | \n", "708427388 | \n", "48 | \n", "3 | \n", "NaN | \n", "39991.376 | \n", "51 | \n", "|
129 | \n", "tap | \n", "64809.708 | \n", "64310.216 | \n", "64559.912 | \n", "1 | \n", "-20.848 | \n", "-4.174676 | \n", "262 | \n", "NaN | \n", "480.188 | \n", "False | \n", "732975076 | \n", "48 | \n", "3 | \n", "NaN | \n", "64539.064 | \n", "48 | \n", "
\n", " | \n", " | beat_end | \n", "beat_start | \n", "beat_target | \n", "channel | \n", "dev | \n", "dev_perc | \n", "i | \n", "interval | \n", "ints | \n", "is_failure | \n", "is_outlier | \n", "micros | \n", "outlier_metric | \n", "pitch | \n", "target_spiked | \n", "task_ms | \n", "velocity | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
beat | \n", "stamp | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
0 | \n", "target | \n", "409.906 | \n", "0.000 | \n", "0.000 | \n", "NaN | \n", "0.000 | \n", "NaN | \n", "0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "False | \n", "0.000 | \n", "NaN | \n", "
1 | \n", "target | \n", "1229.910 | \n", "409.906 | \n", "819.812 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "1 | \n", "819.812 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1737800632 | \n", "NaN | \n", "NaN | \n", "False | \n", "819.812 | \n", "NaN | \n", "
2 | \n", "target | \n", "2050.125 | \n", "1229.910 | \n", "1640.008 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "2 | \n", "820.196 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1738620828 | \n", "NaN | \n", "NaN | \n", "False | \n", "1640.008 | \n", "NaN | \n", "
3 | \n", "target | \n", "2870.355 | \n", "2050.125 | \n", "2460.242 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "3 | \n", "820.234 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1739441062 | \n", "NaN | \n", "NaN | \n", "False | \n", "2460.242 | \n", "NaN | \n", "
4 | \n", "target | \n", "3688.027 | \n", "2870.355 | \n", "3280.468 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "4 | \n", "820.226 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1740261288 | \n", "NaN | \n", "NaN | \n", "False | \n", "3280.468 | \n", "NaN | \n", "
5 | \n", "target | \n", "4500.576 | \n", "3688.027 | \n", "4095.586 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "5 | \n", "815.118 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1741076406 | \n", "NaN | \n", "NaN | \n", "False | \n", "4095.586 | \n", "NaN | \n", "
6 | \n", "target | \n", "5310.559 | \n", "4500.576 | \n", "4905.566 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "6 | \n", "809.980 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1741886386 | \n", "NaN | \n", "NaN | \n", "False | \n", "4905.566 | \n", "NaN | \n", "
7 | \n", "target | \n", "6120.554 | \n", "5310.559 | \n", "5715.552 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "7 | \n", "809.986 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1742696372 | \n", "NaN | \n", "NaN | \n", "False | \n", "5715.552 | \n", "NaN | \n", "
8 | \n", "target | \n", "6930.545 | \n", "6120.554 | \n", "6525.556 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "8 | \n", "810.004 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1743506376 | \n", "NaN | \n", "NaN | \n", "False | \n", "6525.556 | \n", "NaN | \n", "
9 | \n", "tap | \n", "7737.963 | \n", "6930.545 | \n", "7335.534 | \n", "1 | \n", "-82.422 | \n", "-10.175832 | \n", "0 | \n", "NaN | \n", "763.332 | \n", "False | \n", "False | \n", "1744233932 | \n", "-4.166107 | \n", "48 | \n", "NaN | \n", "7253.112 | \n", "37 | \n", "
target | \n", "7737.963 | \n", "6930.545 | \n", "7335.534 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "9 | \n", "809.978 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1744316354 | \n", "NaN | \n", "NaN | \n", "False | \n", "7335.534 | \n", "NaN | \n", "|
10 | \n", "tap | \n", "8540.263 | \n", "7737.963 | \n", "8140.392 | \n", "1 | \n", "-57.372 | \n", "-7.128214 | \n", "0 | \n", "NaN | \n", "829.908 | \n", "False | \n", "False | \n", "1745063840 | \n", "-2.918376 | \n", "48 | \n", "NaN | \n", "8083.020 | \n", "30 | \n", "
target | \n", "8540.263 | \n", "7737.963 | \n", "8140.392 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "10 | \n", "804.858 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1745121212 | \n", "NaN | \n", "NaN | \n", "False | \n", "8140.392 | \n", "NaN | \n", "|
11 | \n", "tap | \n", "9340.014 | \n", "8540.263 | \n", "8940.134 | \n", "1 | \n", "-20.954 | \n", "-2.620095 | \n", "1 | \n", "NaN | \n", "836.160 | \n", "False | \n", "False | \n", "1745900000 | \n", "-1.072698 | \n", "48 | \n", "NaN | \n", "8919.180 | \n", "21 | \n", "
target | \n", "9340.014 | \n", "8540.263 | \n", "8940.134 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "11 | \n", "799.742 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1745920954 | \n", "NaN | \n", "NaN | \n", "False | \n", "8940.134 | \n", "NaN | \n", "|
12 | \n", "tap | \n", "10140.021 | \n", "9340.014 | \n", "9739.894 | \n", "1 | \n", "-15.858 | \n", "-1.982845 | \n", "1 | \n", "NaN | \n", "804.856 | \n", "False | \n", "False | \n", "1746704856 | \n", "-0.811800 | \n", "48 | \n", "NaN | \n", "9724.036 | \n", "22 | \n", "
target | \n", "10140.021 | \n", "9340.014 | \n", "9739.894 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "12 | \n", "799.760 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1746720714 | \n", "NaN | \n", "NaN | \n", "False | \n", "9739.894 | \n", "NaN | \n", "|
13 | \n", "tap | \n", "10940.267 | \n", "10140.021 | \n", "10540.148 | \n", "1 | \n", "-11.952 | \n", "-1.493526 | \n", "1 | \n", "NaN | \n", "804.160 | \n", "False | \n", "False | \n", "1747509016 | \n", "-0.611467 | \n", "48 | \n", "NaN | \n", "10528.196 | \n", "34 | \n", "
target | \n", "10940.267 | \n", "10140.021 | \n", "10540.148 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "13 | \n", "800.254 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1747520968 | \n", "NaN | \n", "NaN | \n", "False | \n", "10540.148 | \n", "NaN | \n", "|
14 | \n", "tap | \n", "11737.695 | \n", "10940.267 | \n", "11340.386 | \n", "1 | \n", "-18.978 | \n", "-2.371544 | \n", "1 | \n", "NaN | \n", "793.212 | \n", "False | \n", "False | \n", "1748302228 | \n", "-0.970939 | \n", "48 | \n", "NaN | \n", "11321.408 | \n", "26 | \n", "
target | \n", "11737.695 | \n", "10940.267 | \n", "11340.386 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "14 | \n", "800.238 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1748321206 | \n", "NaN | \n", "NaN | \n", "False | \n", "11340.386 | \n", "NaN | \n", "|
15 | \n", "tap | \n", "12530.014 | \n", "11737.695 | \n", "12135.004 | \n", "1 | \n", "10.432 | \n", "1.312832 | \n", "1 | \n", "NaN | \n", "824.028 | \n", "False | \n", "False | \n", "1749126256 | \n", "0.537489 | \n", "48 | \n", "NaN | \n", "12145.436 | \n", "32 | \n", "
target | \n", "12530.014 | \n", "11737.695 | \n", "12135.004 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "15 | \n", "794.618 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1749115824 | \n", "NaN | \n", "NaN | \n", "False | \n", "12135.004 | \n", "NaN | \n", "|
16 | \n", "tap | \n", "13320.039 | \n", "12530.014 | \n", "12925.024 | \n", "1 | \n", "54.028 | \n", "6.838814 | \n", "3 | \n", "NaN | \n", "833.616 | \n", "False | \n", "False | \n", "1749959872 | \n", "2.799892 | \n", "48 | \n", "NaN | \n", "12979.052 | \n", "32 | \n", "
target | \n", "13320.039 | \n", "12530.014 | \n", "12925.024 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "16 | \n", "790.020 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1749905844 | \n", "NaN | \n", "NaN | \n", "False | \n", "12925.024 | \n", "NaN | \n", "|
17 | \n", "tap | \n", "14110.068 | \n", "13320.039 | \n", "13715.054 | \n", "1 | \n", "25.990 | \n", "3.289748 | \n", "1 | \n", "NaN | \n", "761.992 | \n", "False | \n", "False | \n", "1750721864 | \n", "1.346862 | \n", "48 | \n", "NaN | \n", "13741.044 | \n", "19 | \n", "
target | \n", "14110.068 | \n", "13320.039 | \n", "13715.054 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "17 | \n", "790.030 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1750695874 | \n", "NaN | \n", "NaN | \n", "False | \n", "13715.054 | \n", "NaN | \n", "|
18 | \n", "tap | \n", "14900.094 | \n", "14110.068 | \n", "14505.082 | \n", "1 | \n", "101.750 | \n", "12.879290 | \n", "3 | \n", "NaN | \n", "865.788 | \n", "False | \n", "False | \n", "1751587652 | \n", "5.272936 | \n", "48 | \n", "NaN | \n", "14606.832 | \n", "28 | \n", "
target | \n", "14900.094 | \n", "14110.068 | \n", "14505.082 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "18 | \n", "790.028 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1751485902 | \n", "NaN | \n", "NaN | \n", "False | \n", "14505.082 | \n", "NaN | \n", "|
19 | \n", "tap | \n", "15687.552 | \n", "14900.094 | \n", "15295.106 | \n", "1 | \n", "78.094 | \n", "9.885016 | \n", "3 | \n", "NaN | \n", "766.368 | \n", "False | \n", "False | \n", "1752354020 | \n", "4.047044 | \n", "48 | \n", "NaN | \n", "15373.200 | \n", "19 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
155 | \n", "tap | \n", "103969.882 | \n", "103457.392 | \n", "103714.922 | \n", "1 | \n", "9.886 | \n", "1.919388 | \n", "2 | \n", "NaN | \n", "NaN | \n", "False | \n", "False | \n", "1840705628 | \n", "0.785820 | \n", "48 | \n", "NaN | \n", "103724.808 | \n", "35 | \n", "
target | \n", "103969.882 | \n", "103457.392 | \n", "103714.922 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "155 | \n", "515.060 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1840695742 | \n", "NaN | \n", "NaN | \n", "False | \n", "103714.922 | \n", "NaN | \n", "|
156 | \n", "tap | \n", "104479.817 | \n", "103969.882 | \n", "104224.842 | \n", "1 | \n", "84.326 | \n", "16.537104 | \n", "3 | \n", "NaN | \n", "584.360 | \n", "False | \n", "False | \n", "1841289988 | \n", "6.770488 | \n", "48 | \n", "NaN | \n", "104309.168 | \n", "31 | \n", "
target | \n", "104479.817 | \n", "103969.882 | \n", "104224.842 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "156 | \n", "509.920 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1841205662 | \n", "NaN | \n", "NaN | \n", "False | \n", "104224.842 | \n", "NaN | \n", "|
157 | \n", "tap | \n", "104989.768 | \n", "104479.817 | \n", "104734.792 | \n", "1 | \n", "137.956 | \n", "27.052848 | \n", "3 | \n", "NaN | \n", "563.580 | \n", "False | \n", "False | \n", "1841853568 | \n", "11.075760 | \n", "48 | \n", "NaN | \n", "104872.748 | \n", "27 | \n", "
target | \n", "104989.768 | \n", "104479.817 | \n", "104734.792 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "157 | \n", "509.950 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1841715612 | \n", "NaN | \n", "NaN | \n", "False | \n", "104734.792 | \n", "NaN | \n", "|
158 | \n", "tap | \n", "105499.723 | \n", "104989.768 | \n", "105244.744 | \n", "1 | \n", "192.028 | \n", "37.656093 | \n", "3 | \n", "NaN | \n", "564.024 | \n", "False | \n", "True | \n", "1842417592 | \n", "15.416855 | \n", "48 | \n", "NaN | \n", "105436.772 | \n", "32 | \n", "
target | \n", "105499.723 | \n", "104989.768 | \n", "105244.744 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "158 | \n", "509.952 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1842225564 | \n", "NaN | \n", "NaN | \n", "False | \n", "105244.744 | \n", "NaN | \n", "|
159 | \n", "tap | \n", "106007.377 | \n", "105499.723 | \n", "105754.702 | \n", "1 | \n", "168.586 | \n", "33.058801 | \n", "3 | \n", "NaN | \n", "486.516 | \n", "False | \n", "True | \n", "1842904108 | \n", "13.534669 | \n", "48 | \n", "NaN | \n", "105923.288 | \n", "24 | \n", "
target | \n", "106007.377 | \n", "105499.723 | \n", "105754.702 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "159 | \n", "509.958 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1842735522 | \n", "NaN | \n", "NaN | \n", "False | \n", "105754.702 | \n", "NaN | \n", "|
160 | \n", "tap | \n", "106510.178 | \n", "106007.377 | \n", "106260.052 | \n", "1 | \n", "211.184 | \n", "41.789651 | \n", "3 | \n", "NaN | \n", "547.948 | \n", "False | \n", "True | \n", "1843452056 | \n", "17.109183 | \n", "48 | \n", "NaN | \n", "106471.236 | \n", "22 | \n", "
target | \n", "106510.178 | \n", "106007.377 | \n", "106260.052 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "160 | \n", "505.350 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1843240872 | \n", "NaN | \n", "NaN | \n", "False | \n", "106260.052 | \n", "NaN | \n", "|
161 | \n", "tap | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "True | \n", "False | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
target | \n", "107010.161 | \n", "106510.178 | \n", "106760.304 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "161 | \n", "500.252 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1843741124 | \n", "NaN | \n", "NaN | \n", "False | \n", "106760.304 | \n", "NaN | \n", "|
162 | \n", "tap | \n", "107510.116 | \n", "107010.161 | \n", "107260.018 | \n", "1 | \n", "-237.242 | \n", "-47.475556 | \n", "0 | \n", "NaN | \n", "NaN | \n", "False | \n", "True | \n", "1844003596 | \n", "-19.437061 | \n", "48 | \n", "NaN | \n", "107022.776 | \n", "24 | \n", "
target | \n", "107510.116 | \n", "107010.161 | \n", "107260.018 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "162 | \n", "499.714 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1844240838 | \n", "NaN | \n", "NaN | \n", "False | \n", "107260.018 | \n", "NaN | \n", "|
163 | \n", "tap | \n", "108010.332 | \n", "107510.116 | \n", "107760.214 | \n", "1 | \n", "-155.566 | \n", "-31.101008 | \n", "0 | \n", "NaN | \n", "581.872 | \n", "False | \n", "True | \n", "1844585468 | \n", "-12.733125 | \n", "48 | \n", "NaN | \n", "107604.648 | \n", "21 | \n", "
target | \n", "108010.332 | \n", "107510.116 | \n", "107760.214 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "163 | \n", "500.196 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1844741034 | \n", "NaN | \n", "NaN | \n", "False | \n", "107760.214 | \n", "NaN | \n", "|
164 | \n", "tap | \n", "108507.760 | \n", "108010.332 | \n", "108260.450 | \n", "1 | \n", "-55.430 | \n", "-11.080770 | \n", "0 | \n", "NaN | \n", "600.372 | \n", "False | \n", "False | \n", "1845185840 | \n", "-4.536600 | \n", "48 | \n", "NaN | \n", "108205.020 | \n", "27 | \n", "
target | \n", "108507.760 | \n", "108010.332 | \n", "108260.450 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "164 | \n", "500.236 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1845241270 | \n", "NaN | \n", "NaN | \n", "False | \n", "108260.450 | \n", "NaN | \n", "|
165 | \n", "tap | \n", "109000.062 | \n", "108507.760 | \n", "108755.070 | \n", "1 | \n", "16.474 | \n", "3.330638 | \n", "2 | \n", "NaN | \n", "566.524 | \n", "False | \n", "False | \n", "1845752364 | \n", "1.363603 | \n", "48 | \n", "NaN | \n", "108771.544 | \n", "32 | \n", "
target | \n", "109000.062 | \n", "108507.760 | \n", "108755.070 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "165 | \n", "494.620 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1845735890 | \n", "NaN | \n", "NaN | \n", "False | \n", "108755.070 | \n", "NaN | \n", "|
166 | \n", "tap | \n", "109490.045 | \n", "109000.062 | \n", "109245.054 | \n", "1 | \n", "52.710 | \n", "10.757494 | \n", "2 | \n", "NaN | \n", "526.220 | \n", "False | \n", "False | \n", "1846278584 | \n", "4.404247 | \n", "48 | \n", "NaN | \n", "109297.764 | \n", "20 | \n", "
target | \n", "109490.045 | \n", "109000.062 | \n", "109245.054 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "166 | \n", "489.984 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1846225874 | \n", "NaN | \n", "NaN | \n", "False | \n", "109245.054 | \n", "NaN | \n", "|
167 | \n", "tap | \n", "109980.031 | \n", "109490.045 | \n", "109735.036 | \n", "1 | \n", "94.716 | \n", "19.330506 | \n", "3 | \n", "NaN | \n", "531.988 | \n", "False | \n", "False | \n", "1846810572 | \n", "7.914141 | \n", "48 | \n", "NaN | \n", "109829.752 | \n", "28 | \n", "
target | \n", "109980.031 | \n", "109490.045 | \n", "109735.036 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "167 | \n", "489.982 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1846715856 | \n", "NaN | \n", "NaN | \n", "False | \n", "109735.036 | \n", "NaN | \n", "|
168 | \n", "tap | \n", "110470.006 | \n", "109980.031 | \n", "110225.026 | \n", "1 | \n", "173.646 | \n", "35.438682 | \n", "3 | \n", "NaN | \n", "568.920 | \n", "False | \n", "True | \n", "1847379492 | \n", "14.509021 | \n", "48 | \n", "NaN | \n", "110398.672 | \n", "18 | \n", "
target | \n", "110470.006 | \n", "109980.031 | \n", "110225.026 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "168 | \n", "489.990 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1847205846 | \n", "NaN | \n", "NaN | \n", "False | \n", "110225.026 | \n", "NaN | \n", "|
169 | \n", "tap | \n", "111204.946 | \n", "110470.006 | \n", "110714.986 | \n", "1 | \n", "166.966 | \n", "34.077476 | \n", "3 | \n", "NaN | \n", "483.280 | \n", "False | \n", "True | \n", "1847862772 | \n", "13.951726 | \n", "48 | \n", "NaN | \n", "110881.952 | \n", "19 | \n", "
target | \n", "111204.946 | \n", "110470.006 | \n", "110714.986 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "169 | \n", "489.960 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "1847695806 | \n", "NaN | \n", "NaN | \n", "False | \n", "110714.986 | \n", "NaN | \n", "
331 rows × 17 columns
\n", "\n", " | \n", " | beat_end | \n", "beat_start | \n", "beat_target | \n", "channel | \n", "dev | \n", "dev_perc | \n", "i | \n", "interval | \n", "ints | \n", "is_outlier | \n", "micros | \n", "outlier_metric | \n", "pitch | \n", "target_spiked | \n", "task_ms | \n", "velocity | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
beat | \n", "stamp | \n", "\n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " | \n", " |
0 | \n", "target | \n", "409.906 | \n", "0.000 | \n", "0.000 | \n", "NaN | \n", "0.000 | \n", "NaN | \n", "0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "False | \n", "0.000 | \n", "NaN | \n", "
1 | \n", "target | \n", "1229.910 | \n", "409.906 | \n", "819.812 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "1 | \n", "819.812 | \n", "NaN | \n", "NaN | \n", "1737800632 | \n", "NaN | \n", "NaN | \n", "False | \n", "819.812 | \n", "NaN | \n", "
2 | \n", "target | \n", "2050.125 | \n", "1229.910 | \n", "1640.008 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "2 | \n", "820.196 | \n", "NaN | \n", "NaN | \n", "1738620828 | \n", "NaN | \n", "NaN | \n", "False | \n", "1640.008 | \n", "NaN | \n", "
3 | \n", "target | \n", "2870.355 | \n", "2050.125 | \n", "2460.242 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "3 | \n", "820.234 | \n", "NaN | \n", "NaN | \n", "1739441062 | \n", "NaN | \n", "NaN | \n", "False | \n", "2460.242 | \n", "NaN | \n", "
4 | \n", "target | \n", "3688.027 | \n", "2870.355 | \n", "3280.468 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "4 | \n", "820.226 | \n", "NaN | \n", "NaN | \n", "1740261288 | \n", "NaN | \n", "NaN | \n", "False | \n", "3280.468 | \n", "NaN | \n", "
5 | \n", "target | \n", "4500.576 | \n", "3688.027 | \n", "4095.586 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "5 | \n", "815.118 | \n", "NaN | \n", "NaN | \n", "1741076406 | \n", "NaN | \n", "NaN | \n", "False | \n", "4095.586 | \n", "NaN | \n", "
6 | \n", "target | \n", "5310.559 | \n", "4500.576 | \n", "4905.566 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "6 | \n", "809.980 | \n", "NaN | \n", "NaN | \n", "1741886386 | \n", "NaN | \n", "NaN | \n", "False | \n", "4905.566 | \n", "NaN | \n", "
7 | \n", "target | \n", "6120.554 | \n", "5310.559 | \n", "5715.552 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "7 | \n", "809.986 | \n", "NaN | \n", "NaN | \n", "1742696372 | \n", "NaN | \n", "NaN | \n", "False | \n", "5715.552 | \n", "NaN | \n", "
8 | \n", "target | \n", "6930.545 | \n", "6120.554 | \n", "6525.556 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "8 | \n", "810.004 | \n", "NaN | \n", "NaN | \n", "1743506376 | \n", "NaN | \n", "NaN | \n", "False | \n", "6525.556 | \n", "NaN | \n", "
9 | \n", "tap | \n", "7737.963 | \n", "6930.545 | \n", "7335.534 | \n", "1 | \n", "-82.422 | \n", "-10.175832 | \n", "0 | \n", "NaN | \n", "763.332 | \n", "False | \n", "1744233932 | \n", "-4.166107 | \n", "48 | \n", "NaN | \n", "7253.112 | \n", "37 | \n", "
target | \n", "7737.963 | \n", "6930.545 | \n", "7335.534 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "9 | \n", "809.978 | \n", "NaN | \n", "NaN | \n", "1744316354 | \n", "NaN | \n", "NaN | \n", "False | \n", "7335.534 | \n", "NaN | \n", "|
10 | \n", "tap | \n", "8540.263 | \n", "7737.963 | \n", "8140.392 | \n", "1 | \n", "-57.372 | \n", "-7.128214 | \n", "0 | \n", "NaN | \n", "829.908 | \n", "False | \n", "1745063840 | \n", "-2.918376 | \n", "48 | \n", "NaN | \n", "8083.020 | \n", "30 | \n", "
target | \n", "8540.263 | \n", "7737.963 | \n", "8140.392 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "10 | \n", "804.858 | \n", "NaN | \n", "NaN | \n", "1745121212 | \n", "NaN | \n", "NaN | \n", "False | \n", "8140.392 | \n", "NaN | \n", "|
11 | \n", "tap | \n", "9340.014 | \n", "8540.263 | \n", "8940.134 | \n", "1 | \n", "-20.954 | \n", "-2.620095 | \n", "1 | \n", "NaN | \n", "836.160 | \n", "False | \n", "1745900000 | \n", "-1.072698 | \n", "48 | \n", "NaN | \n", "8919.180 | \n", "21 | \n", "
target | \n", "9340.014 | \n", "8540.263 | \n", "8940.134 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "11 | \n", "799.742 | \n", "NaN | \n", "NaN | \n", "1745920954 | \n", "NaN | \n", "NaN | \n", "False | \n", "8940.134 | \n", "NaN | \n", "|
12 | \n", "tap | \n", "10140.021 | \n", "9340.014 | \n", "9739.894 | \n", "1 | \n", "-15.858 | \n", "-1.982845 | \n", "1 | \n", "NaN | \n", "804.856 | \n", "False | \n", "1746704856 | \n", "-0.811800 | \n", "48 | \n", "NaN | \n", "9724.036 | \n", "22 | \n", "
target | \n", "10140.021 | \n", "9340.014 | \n", "9739.894 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "12 | \n", "799.760 | \n", "NaN | \n", "NaN | \n", "1746720714 | \n", "NaN | \n", "NaN | \n", "False | \n", "9739.894 | \n", "NaN | \n", "|
13 | \n", "tap | \n", "10940.267 | \n", "10140.021 | \n", "10540.148 | \n", "1 | \n", "-11.952 | \n", "-1.493526 | \n", "1 | \n", "NaN | \n", "804.160 | \n", "False | \n", "1747509016 | \n", "-0.611467 | \n", "48 | \n", "NaN | \n", "10528.196 | \n", "34 | \n", "
target | \n", "10940.267 | \n", "10140.021 | \n", "10540.148 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "13 | \n", "800.254 | \n", "NaN | \n", "NaN | \n", "1747520968 | \n", "NaN | \n", "NaN | \n", "False | \n", "10540.148 | \n", "NaN | \n", "|
14 | \n", "tap | \n", "11737.695 | \n", "10940.267 | \n", "11340.386 | \n", "1 | \n", "-18.978 | \n", "-2.371544 | \n", "1 | \n", "NaN | \n", "793.212 | \n", "False | \n", "1748302228 | \n", "-0.970939 | \n", "48 | \n", "NaN | \n", "11321.408 | \n", "26 | \n", "
target | \n", "11737.695 | \n", "10940.267 | \n", "11340.386 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "14 | \n", "800.238 | \n", "NaN | \n", "NaN | \n", "1748321206 | \n", "NaN | \n", "NaN | \n", "False | \n", "11340.386 | \n", "NaN | \n", "|
15 | \n", "tap | \n", "12530.014 | \n", "11737.695 | \n", "12135.004 | \n", "1 | \n", "10.432 | \n", "1.312832 | \n", "1 | \n", "NaN | \n", "824.028 | \n", "False | \n", "1749126256 | \n", "0.537489 | \n", "48 | \n", "NaN | \n", "12145.436 | \n", "32 | \n", "
target | \n", "12530.014 | \n", "11737.695 | \n", "12135.004 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "15 | \n", "794.618 | \n", "NaN | \n", "NaN | \n", "1749115824 | \n", "NaN | \n", "NaN | \n", "False | \n", "12135.004 | \n", "NaN | \n", "|
16 | \n", "tap | \n", "13320.039 | \n", "12530.014 | \n", "12925.024 | \n", "1 | \n", "54.028 | \n", "6.838814 | \n", "3 | \n", "NaN | \n", "833.616 | \n", "False | \n", "1749959872 | \n", "2.799892 | \n", "48 | \n", "NaN | \n", "12979.052 | \n", "32 | \n", "
target | \n", "13320.039 | \n", "12530.014 | \n", "12925.024 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "16 | \n", "790.020 | \n", "NaN | \n", "NaN | \n", "1749905844 | \n", "NaN | \n", "NaN | \n", "False | \n", "12925.024 | \n", "NaN | \n", "|
17 | \n", "tap | \n", "14110.068 | \n", "13320.039 | \n", "13715.054 | \n", "1 | \n", "25.990 | \n", "3.289748 | \n", "1 | \n", "NaN | \n", "761.992 | \n", "False | \n", "1750721864 | \n", "1.346862 | \n", "48 | \n", "NaN | \n", "13741.044 | \n", "19 | \n", "
target | \n", "14110.068 | \n", "13320.039 | \n", "13715.054 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "17 | \n", "790.030 | \n", "NaN | \n", "NaN | \n", "1750695874 | \n", "NaN | \n", "NaN | \n", "False | \n", "13715.054 | \n", "NaN | \n", "|
18 | \n", "tap | \n", "14900.094 | \n", "14110.068 | \n", "14505.082 | \n", "1 | \n", "101.750 | \n", "12.879290 | \n", "3 | \n", "NaN | \n", "865.788 | \n", "False | \n", "1751587652 | \n", "5.272936 | \n", "48 | \n", "NaN | \n", "14606.832 | \n", "28 | \n", "
target | \n", "14900.094 | \n", "14110.068 | \n", "14505.082 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "18 | \n", "790.028 | \n", "NaN | \n", "NaN | \n", "1751485902 | \n", "NaN | \n", "NaN | \n", "False | \n", "14505.082 | \n", "NaN | \n", "|
19 | \n", "tap | \n", "15687.552 | \n", "14900.094 | \n", "15295.106 | \n", "1 | \n", "78.094 | \n", "9.885016 | \n", "3 | \n", "NaN | \n", "766.368 | \n", "False | \n", "1752354020 | \n", "4.047044 | \n", "48 | \n", "NaN | \n", "15373.200 | \n", "19 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
155 | \n", "tap | \n", "103969.882 | \n", "103457.392 | \n", "103714.922 | \n", "1 | \n", "9.886 | \n", "1.919388 | \n", "2 | \n", "NaN | \n", "NaN | \n", "False | \n", "1840705628 | \n", "0.785820 | \n", "48 | \n", "NaN | \n", "103724.808 | \n", "35 | \n", "
target | \n", "103969.882 | \n", "103457.392 | \n", "103714.922 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "155 | \n", "515.060 | \n", "NaN | \n", "NaN | \n", "1840695742 | \n", "NaN | \n", "NaN | \n", "False | \n", "103714.922 | \n", "NaN | \n", "|
156 | \n", "tap | \n", "104479.817 | \n", "103969.882 | \n", "104224.842 | \n", "1 | \n", "84.326 | \n", "16.537104 | \n", "3 | \n", "NaN | \n", "584.360 | \n", "False | \n", "1841289988 | \n", "6.770488 | \n", "48 | \n", "NaN | \n", "104309.168 | \n", "31 | \n", "
target | \n", "104479.817 | \n", "103969.882 | \n", "104224.842 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "156 | \n", "509.920 | \n", "NaN | \n", "NaN | \n", "1841205662 | \n", "NaN | \n", "NaN | \n", "False | \n", "104224.842 | \n", "NaN | \n", "|
157 | \n", "tap | \n", "104989.768 | \n", "104479.817 | \n", "104734.792 | \n", "1 | \n", "137.956 | \n", "27.052848 | \n", "3 | \n", "NaN | \n", "563.580 | \n", "False | \n", "1841853568 | \n", "11.075760 | \n", "48 | \n", "NaN | \n", "104872.748 | \n", "27 | \n", "
target | \n", "104989.768 | \n", "104479.817 | \n", "104734.792 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "157 | \n", "509.950 | \n", "NaN | \n", "NaN | \n", "1841715612 | \n", "NaN | \n", "NaN | \n", "False | \n", "104734.792 | \n", "NaN | \n", "|
158 | \n", "tap | \n", "105499.723 | \n", "104989.768 | \n", "105244.744 | \n", "1 | \n", "192.028 | \n", "37.656093 | \n", "3 | \n", "NaN | \n", "564.024 | \n", "True | \n", "1842417592 | \n", "15.416855 | \n", "48 | \n", "NaN | \n", "105436.772 | \n", "32 | \n", "
target | \n", "105499.723 | \n", "104989.768 | \n", "105244.744 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "158 | \n", "509.952 | \n", "NaN | \n", "NaN | \n", "1842225564 | \n", "NaN | \n", "NaN | \n", "False | \n", "105244.744 | \n", "NaN | \n", "|
159 | \n", "tap | \n", "106007.377 | \n", "105499.723 | \n", "105754.702 | \n", "1 | \n", "168.586 | \n", "33.058801 | \n", "3 | \n", "NaN | \n", "486.516 | \n", "True | \n", "1842904108 | \n", "13.534669 | \n", "48 | \n", "NaN | \n", "105923.288 | \n", "24 | \n", "
target | \n", "106007.377 | \n", "105499.723 | \n", "105754.702 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "159 | \n", "509.958 | \n", "NaN | \n", "NaN | \n", "1842735522 | \n", "NaN | \n", "NaN | \n", "False | \n", "105754.702 | \n", "NaN | \n", "|
160 | \n", "tap | \n", "106510.178 | \n", "106007.377 | \n", "106260.052 | \n", "1 | \n", "211.184 | \n", "41.789651 | \n", "3 | \n", "NaN | \n", "547.948 | \n", "True | \n", "1843452056 | \n", "17.109183 | \n", "48 | \n", "NaN | \n", "106471.236 | \n", "22 | \n", "
target | \n", "106510.178 | \n", "106007.377 | \n", "106260.052 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "160 | \n", "505.350 | \n", "NaN | \n", "NaN | \n", "1843240872 | \n", "NaN | \n", "NaN | \n", "False | \n", "106260.052 | \n", "NaN | \n", "|
161 | \n", "tap | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "False | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
target | \n", "107010.161 | \n", "106510.178 | \n", "106760.304 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "161 | \n", "500.252 | \n", "NaN | \n", "NaN | \n", "1843741124 | \n", "NaN | \n", "NaN | \n", "False | \n", "106760.304 | \n", "NaN | \n", "|
162 | \n", "tap | \n", "107510.116 | \n", "107010.161 | \n", "107260.018 | \n", "1 | \n", "-237.242 | \n", "-47.475556 | \n", "0 | \n", "NaN | \n", "NaN | \n", "True | \n", "1844003596 | \n", "-19.437061 | \n", "48 | \n", "NaN | \n", "107022.776 | \n", "24 | \n", "
target | \n", "107510.116 | \n", "107010.161 | \n", "107260.018 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "162 | \n", "499.714 | \n", "NaN | \n", "NaN | \n", "1844240838 | \n", "NaN | \n", "NaN | \n", "False | \n", "107260.018 | \n", "NaN | \n", "|
163 | \n", "tap | \n", "108010.332 | \n", "107510.116 | \n", "107760.214 | \n", "1 | \n", "-155.566 | \n", "-31.101008 | \n", "0 | \n", "NaN | \n", "581.872 | \n", "True | \n", "1844585468 | \n", "-12.733125 | \n", "48 | \n", "NaN | \n", "107604.648 | \n", "21 | \n", "
target | \n", "108010.332 | \n", "107510.116 | \n", "107760.214 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "163 | \n", "500.196 | \n", "NaN | \n", "NaN | \n", "1844741034 | \n", "NaN | \n", "NaN | \n", "False | \n", "107760.214 | \n", "NaN | \n", "|
164 | \n", "tap | \n", "108507.760 | \n", "108010.332 | \n", "108260.450 | \n", "1 | \n", "-55.430 | \n", "-11.080770 | \n", "0 | \n", "NaN | \n", "600.372 | \n", "False | \n", "1845185840 | \n", "-4.536600 | \n", "48 | \n", "NaN | \n", "108205.020 | \n", "27 | \n", "
target | \n", "108507.760 | \n", "108010.332 | \n", "108260.450 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "164 | \n", "500.236 | \n", "NaN | \n", "NaN | \n", "1845241270 | \n", "NaN | \n", "NaN | \n", "False | \n", "108260.450 | \n", "NaN | \n", "|
165 | \n", "tap | \n", "109000.062 | \n", "108507.760 | \n", "108755.070 | \n", "1 | \n", "16.474 | \n", "3.330638 | \n", "2 | \n", "NaN | \n", "566.524 | \n", "False | \n", "1845752364 | \n", "1.363603 | \n", "48 | \n", "NaN | \n", "108771.544 | \n", "32 | \n", "
target | \n", "109000.062 | \n", "108507.760 | \n", "108755.070 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "165 | \n", "494.620 | \n", "NaN | \n", "NaN | \n", "1845735890 | \n", "NaN | \n", "NaN | \n", "False | \n", "108755.070 | \n", "NaN | \n", "|
166 | \n", "tap | \n", "109490.045 | \n", "109000.062 | \n", "109245.054 | \n", "1 | \n", "52.710 | \n", "10.757494 | \n", "2 | \n", "NaN | \n", "526.220 | \n", "False | \n", "1846278584 | \n", "4.404247 | \n", "48 | \n", "NaN | \n", "109297.764 | \n", "20 | \n", "
target | \n", "109490.045 | \n", "109000.062 | \n", "109245.054 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "166 | \n", "489.984 | \n", "NaN | \n", "NaN | \n", "1846225874 | \n", "NaN | \n", "NaN | \n", "False | \n", "109245.054 | \n", "NaN | \n", "|
167 | \n", "tap | \n", "109980.031 | \n", "109490.045 | \n", "109735.036 | \n", "1 | \n", "94.716 | \n", "19.330506 | \n", "3 | \n", "NaN | \n", "531.988 | \n", "False | \n", "1846810572 | \n", "7.914141 | \n", "48 | \n", "NaN | \n", "109829.752 | \n", "28 | \n", "
target | \n", "109980.031 | \n", "109490.045 | \n", "109735.036 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "167 | \n", "489.982 | \n", "NaN | \n", "NaN | \n", "1846715856 | \n", "NaN | \n", "NaN | \n", "False | \n", "109735.036 | \n", "NaN | \n", "|
168 | \n", "tap | \n", "110470.006 | \n", "109980.031 | \n", "110225.026 | \n", "1 | \n", "173.646 | \n", "35.438682 | \n", "3 | \n", "NaN | \n", "568.920 | \n", "True | \n", "1847379492 | \n", "14.509021 | \n", "48 | \n", "NaN | \n", "110398.672 | \n", "18 | \n", "
target | \n", "110470.006 | \n", "109980.031 | \n", "110225.026 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "168 | \n", "489.990 | \n", "NaN | \n", "NaN | \n", "1847205846 | \n", "NaN | \n", "NaN | \n", "False | \n", "110225.026 | \n", "NaN | \n", "|
169 | \n", "tap | \n", "111204.946 | \n", "110470.006 | \n", "110714.986 | \n", "1 | \n", "166.966 | \n", "34.077476 | \n", "3 | \n", "NaN | \n", "483.280 | \n", "True | \n", "1847862772 | \n", "13.951726 | \n", "48 | \n", "NaN | \n", "110881.952 | \n", "19 | \n", "
target | \n", "111204.946 | \n", "110470.006 | \n", "110714.986 | \n", "NaN | \n", "0.000 | \n", "0.000000 | \n", "169 | \n", "489.960 | \n", "NaN | \n", "NaN | \n", "1847695806 | \n", "NaN | \n", "NaN | \n", "False | \n", "110714.986 | \n", "NaN | \n", "
331 rows × 16 columns
\n", "