cypherq/waveform

This package is abandoned and no longer maintained. No replacement package was suggested.

PHP port of Soundclound Waveform.js

dev-master 2013-07-11 20:54 UTC

This package is not auto-updated.

Last update: 2016-01-10 08:14:52 UTC


README

Waveform.js PHP port

Currently it's only quick port.

Example:

require_once('waveform.php');
$data = array(0.316986,0.382111,0.833466,0.435974,0.38562,0.417053,0.337769,0.807007,0.355804,0.376251,0.418457,0.779236,0.392609,0.209229,0.445587,0.374878,0.877655,0.818542,0.351685,0.381226,0.804413,0.38739,0.397461,0.259888,0.374268,0.841827,0.364319,0.343018,0.404236,0.836456,0.357941,0.375854,0.440521,0.701996,0.762421,0.640686,0.541321,0.212738,0.319672,0.228699,0.47229,0.435028,0.572083,0.227722,0.266846,0.458618,0.52298,0.254059,0.317108,0.473022,0.173035,0.39856,0.278107,0.2771,0.475586,0.434418,0.611359,0.277985,0.379761,0.103973,0.258392,0.205078,0.457092,0.32663,0.218903,0.280823,0.454346,0.530487,0.177307,0.410156,0.248352,0.877472,0.636719,0.65564,0.487244,0.369232,0.927856,0.490845,0.480255,0.2034,0.521759,0.277618,0.564026,0.592804,0.672455,0.900757,0.287506,0.937927,0.309326,0.904053,0.572479,0.623932,0.354736,0.844177,0.884766,0.777405,0.475281,0.406403,0.533691,0.501923,0.273438,0.435486,0.891693,0.895172,0.468658,0.962799,0.479675,0.933838,0.449524,0.918427,0.36319,0.947968,0.698212,0.783966,0.533661,0.351379,0.967285,0.626282,0.969604,0.732971,0.953583,0.412903,0.96405,0.754456,0.386719,0.960693,0.436829,0.999969,0.40509,0.895111,0.423462,0.965881,0.279083,0.457428,0.350525,0.437653,0.999969,0.399689,0.944672,0.319885,0.902161,0.565948,0.996918,0.490784,0.212067,0.970306,0.308594,0.911926,0.382629,0.564636,0.543457,0.955322,0.475983,0.924377,0.932709,0.354462,0.476318,0.234131,0.313385,0.304779,0.332397,0.26825,0.154572,0.108063,0.0836182,0.0656738,0.0524902,0.0744629,0.0930786,0.124481,0.150238,0.177155,0.196869,0.25708,0.288361,0.308441,0.409119,0.405518,0.987885,0.405243,0.998413,0.930939,0.977264,0.91687,0.98941,0.999969,0.932922,0.968567,0.901245,0.969391,0.940277,0.999969,0.977509,0.991791,0.984283,0.989899,0.968048,0.899078,0.998199,0.825928,0.959625,0.97644,0.98111,0.977509,0.875397,0.999969,0.902527,0.976471,0.864899,0.994476,0.865753,0.90155,0.859802,0.960846,0.836151,0.714081,0.994263,0.968323,0.998596,0.865143,0.997803,0.948242,0.951996,0.951721,0.848114,0.999542,0.972687,0.94162,0.899078,0.954987,0.860687,0.996307,0.895508,0.999969,0.96109,0.820312,0.99585,0.853333,0.999969,0.927277,0.944489,0.408661,0.682526,0.423645,0.395844,0.832947,0.753845,0.941742,0.970551,0.976593,0.981628,0.981049,0.600525,0.927094,0.969482,0.996796,0.990143,0.764618,0.872131,0.94342,0.992584,0.746277,0.867737,0.971008,0.999237,0.947601,0.905823,0.946106,0.969574,0.951172,0.613861,0.949402,0.973389,0.969116,0.965759,0.760742,0.856567,0.928497,0.965698,0.773956,0.932617,0.885864,0.99585,0.859955,0.937622,0.936829,0.969208,0.999969,0.943146,0.979034,0.902466,0.999969,0.905334,0.957611,0.963654,0.999969,0.999969,0.937927,0.941925,0.931641,0.999969,0.871521,0.999969,0.952484,0.973053,0.930511,0.970062,0.941498,0.957123,0.999969,0.920258,0.952789,0.979095,0.989655,0.947601,0.938049,0.96817,0.973206,0.999969,0.872681,0.860199,0.40094,0.291962,0.147888,0.182098,0.162537,0.149506,0.149567,0.140381,0.102631,0.0747375,0.0948181,0.0903931,0.0791016,0.0844116,0.0841064,0.0682068,0.0783691,0.130676,0.407074,0.309753,0.135773,0.184784,0.170929,0.180939,0.160492,0.134979,0.10022,0.0791016,0.0913391,0.0940247,0.233429,0.215851,0.192108,0.281982,0.51828,0.981415,0.485107,0.999969,0.714844,0.999451,0.951569,0.987946,0.506866,0.966888,0.896545,0.917847,0.999969,0.8349,0.997223,0.955292,0.977753,0.948792,0.917877,0.821289,0.444672,0.993683,0.705048,0.961426,0.911041,0.999969,0.842194,0.943237,0.574371,0.96167,0.984467,0.467102,0.957733,0.806396,0.955933,0.713196,0.961761,0.968719,0.960846,0.944092,0.807159,0.993225,0.41449,0.546783,0.536102,0.944305,0.777832,0.999969,0.829041,0.931946,0.957611,0.815826,0.960144,0.837372,0.978516,0.122406,0.967285,0.966705,0.90741,0.924377,0.875854,0.870575,0.949493,0.863007,0.76886,0.753448,0.697968,0.752319,0.695953,0.678711,0.653839,0.955383,0.979279,0.408905,0.984833,0.904968,0.944061,0.913269,0.972656,0.90509,0.930237,0.938171,0.85672,0.999969,0.799133,0.976868,0.82901,0.997589,0.885223,0.996368,0.778961,0.452698,0.999969,0.846313,0.996552,0.91803,0.998535,0.825348,0.959412,0.599548,0.809662,0.999969,0.536194,0.972565,0.798492,0.986389,0.829529,0.961029,0.965179,0.999969,0.951996,0.886047,0.967224,0.411774,0.565552,0.563995,0.955566,0.865295,0.995483,0.894012,0.93573,0.967987,0.903656,0.99585,0.816681,0.97522,0.677795,0.998627,0.879486,0.806854,0.926636,0.993744,0.854553,0.876129,0.845001,0.371338,0.350739,0.307312,0.535309,0.530273,0.614075,0.578461,0.810364,0.993011,0.783142,0.999969,0.770355,0.985626,0.649689,0.999969,0.970947,0.614319,0.986389,0.81662,0.999969,0.812561,0.990265,0.745605,0.960724,0.661957,0.933289,0.984985,0.802032,0.9953,0.874878,0.961884,0.898132,0.992401,0.679932,0.99881,0.956451,0.896057,0.999969,0.845184,0.914673,0.614044,0.759094,0.776276,0.966492,0.430969,0.999969,0.950012,0.498962,0.974426,0.864716,0.985382,0.640869,0.994629,0.834412,0.999969,0.973999,0.941956,0.961975,0.628143,0.960693,0.553009,0.977722,0.962219,0.995422,0.929413,0.985016,0.953918,0.638153,0.996399,0.795441,0.958496,0.828613,0.999969,0.901428,0.815857,0.573792,0.524292,0.778809,0.62674,0.993225,0.729614,0.998627,0.850494,0.943634,0.725128,0.974152,0.999969,0.518921,0.981689,0.917297,0.999969,0.804749,0.977997,0.60611,0.979767,0.732178,0.859894,0.973114,0.84848,0.994659,0.644226,0.95047,0.807312,0.999969,0.704834,0.972351,0.92749,0.61554,0.99826,0.601379,0.975159,0.474426,0.982544,0.650269,0.963074,0.962219,0.990112,0.999969,0.769714,0.999969,0.872131,0.933197,0.42041,0.976288,0.777008,0.962616,0.999969,0.801788,0.99472,0.634857,0.999969,0.81012,0.957489,0.747742,0.999969,0.67514,0.238159,0.906738,0.70871,0.996857,0.612732,0.99118,0.707153,0.999969,0.807373,0.978638,0.881378,0.581299,0.925079,0.636688,0.880249,0.861176,0.981964,0.93811,0.99353,0.948242,0.961609,0.958496,0.992737,0.95224,0.933105,0.948914,0.934906,0.978668,0.888123,0.99942,0.998444,0.89566,0.965576,0.958374,0.999969,0.947052,0.949158,0.948151,0.979706,0.957428,0.886627,0.958405,0.967712,0.999969,0.891479,0.908936,0.959778,0.978027,0.932037,0.950043,0.912079,0.925934,0.952362,0.929413,0.953033,0.947174,0.984589,0.951996,0.963409,0.841949,0.973602,0.959351,0.939972,0.982788,0.960144,0.983612,0.84726,0.999786,0.903839,0.97821,0.85733,0.944061,0.93161,0.961548,0.974213,0.934265,0.933868,0.952728,0.999573,0.994568,0.971222,0.953339,0.959045,0.984589,0.893646,0.826447,0.602448,0.720337,0.359528,0.386414,0.359497,0.297028,0.833771,0.389618,0.378448,0.39502,0.804047,0.429535,0.343414,0.327209,0.442627,0.401123,0.564209,0.336914,0.502808,0.725586,0.450134,0.35141,0.363342,0.821655,0.789825,0.331665,0.310516,0.341461,0.703796,0.379974,0.340271,0.481781,0.496399,0.311035,0.316376,0.292694,0.512238,0.780762,0.431732,0.338379,0.383087,0.820404,0.412628,0.404755,0.348541,0.323181,0.823761,0.426056,0.355072,0.333191,0.643585,0.53717,0.540741,0.478027,0.777405,0.461639,0.406921,0.368927,0.348511,0.853088,0.386047,0.447662,0.367859,0.432159,0.371429,0.205811,0.368744,0.299957,0.392944,0.490845,0.281097,0.125153,0.0897827,0.0634766,0.0406189,0.0322571,0.0127563,0.00860596,0.00576782,0.00393677,0.00305176,0.00152588,0.000976562,0.000823975,0.000518799,0.000488281,0.000488281,0.000244141);

$options = array(
    'data'              => $data,
    'interpolate'       => TRUE,

    'innerColor'        => '#000000',
    'outerColor'        => '#FFFFFF',

    'width'             => 400,
    'height'            => 180,

    /* padding in percents */
    'verticalPadding'   => 4,
    'horizontalPadding' => 1
);

$waveform = new Waveform($options);
$waveform->setLineMethod('normal');
$waveform->createWaveform();
$waveform->toImage('normal.png');

$waveform = new Waveform($options);
$waveform->setLineMethod('smooth');
$waveform->createWaveform();
$waveform->toImage('smooth.png');

$waveform = new Waveform($options);
$waveform->setLineMethod('smoothAlpha');
$waveform->createWaveform();
$waveform->toImage('smooth.alpha.png');

In plans:

  • Imagick driver handling
  • generating waveforms with alpha channel
  • export to SVG, JPEG (currently only PNG hardcoded)
  • waveforms generating based on Soundcloud API
  • antialiasing