Mx.Samples

The double trigger thing is still happening. On Maiden when I press keys I see this log updating - is this what you need?

1

matron

supercollider

1 144

2 62

3 38

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/tatak_piano/64.1.2.1.0.wav on voice 10

1 144

2 62

3 0

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/tatak_piano/62.1.2.1.0.wav on voice 1

1 144

2 62

3 17

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/tatak_piano/62.1.2.1.0.wav on voice 11

1 144

2 62

3 0

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/tatak_piano/62.1.2.1.0.wav on voice 12

1 144

2 62

3 24

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/tatak_piano/62.1.2.1.0.wav on voice 13

1 144

2 62

3 0

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/tatak_piano/62.1.2.1.0.wav on voice 2

1 Like

yeah! so it looks like your device is sending note off’s as a note on (val=144) but with velocity 0. strange, but fine - i just added a fix that will account for that. can you update mx.samples and try again?

1 Like

^^ Update solved the double trigger on my Launchpad fyi :+1:

1 Like

Works fine after update:) Not sure if this is update (actually it said update failed in maiden but maybe I just double tapped) or just rebooting? (but I have tried rebooting before). So works fine straight away now.
Also not seeing the midi information in log so maybe update is failing? (it says up-to-date).

This is a log with keystep now but not sure you need it now

ample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/50.1.3.1.0.wav on voice 9

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.1.3.1.0.wav on voice 10

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.3.3.1.0.wav on voice 11

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.3.3.1.0.wav on voice 12

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.3.3.1.0.wav on voice 1

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.3.3.1.0.wav on voice 13

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.3.3.1.0.wav on voice 14

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.3.3.1.0.wav on voice 2

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/51.2.3.1.0.wav on voice 3

mxsamples: turning off steinway_model_b:51

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.3.3.1.0.wav on voice 4

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/47.3.3.1.0.wav on voice 5

mxsamples: turning off steinway_model_b:47

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/41.3.3.1.0.wav on voice 6

mxsamples: turning off steinway_model_b:41

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/48.2.3.1.0.wav on voice 7

mxsamples: turning off steinway_model_b:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/45.2.3.1.0.wav on voice 8

mxsamples: turning off steinway_model_b:43

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/steinway_model_b/47.3.3.1.0.wav on voice 9

mxsamples: turning off steinway_model_b:47

ls:

cannot access ‘/home/we/dust/code/mx.samples/samples/box_violin/*.wav’

: No such file or directory

ls:

cannot access ‘/home/we/dust/code/mx.samples/samples/cello/*.wav’

: No such file or directory

ls:

cannot access ‘/home/we/dust/code/mx.samples/samples/cello_pad/*.wav’

: No such file or directory

ls:

cannot access ‘/home/we/dust/code/mx.samples/samples/tatak_piano/*.wav’

: No such file or directory

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.1.2.1.0.wav on voice 10

mxsamples: turning off ghost_piano:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 1

mxsamples: turning off ghost_piano:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 11

mxsamples: turning off ghost_piano:50

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 12

mxsamples: turning off ghost_piano:52

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 13

mxsamples: turning off ghost_piano:50

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 2

mxsamples: turning off ghost_piano:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 14

mxsamples: turning off ghost_piano:41

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/54.2.2.1.0.wav on voice 3

mxsamples: turning off ghost_piano:53

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.1.2.1.0.wav on voice 4

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 5

mxsamples: turning off ghost_piano:52

mxsamples: turning off ghost_piano:50

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/54.2.2.1.0.wav on voice 6

mxsamples: turning off ghost_piano:52

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 7

mxsamples: turning off ghost_piano:50

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 8

mxsamples: turning off ghost_piano:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 9

mxsamples: turning off ghost_piano:50

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 10

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 1

mxsamples: turning off ghost_piano:47

mxsamples: turning off ghost_piano:48

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 11

mxsamples: turning off ghost_piano:47

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 12

mxsamples: turning off ghost_piano:45

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 2

mxsamples: turning off ghost_piano:47

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.2.2.1.0.wav on voice 13

mxsamples: turning off ghost_piano:45

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/47.1.2.1.0.wav on voice 14

mxsamples: turning off ghost_piano:43

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/54.1.2.1.0.wav on voice 3

mxsamples: turning off ghost_piano:72

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/76.1.2.1.0.wav on voice 4

mxsamples: turning off ghost_piano:71

sample_closest_loaded: /home/we/dust/code/mx.samples/samples/ghost_piano/54.2.2.1.0.wav on voice 5

1 Like

Excellent, thanks so much for making and sharing this!!

I just wondered, is the stereo effect key-tracked? If so; may I request that we have a way of controlling the amount of stereo width?

1 Like

Thank you - this is working great now.

1 Like

This is amazing :slight_smile: Big thanks. I see this pianobook has many more sounds :open_mouth:

3 Likes

O wow so it does!

2 Likes

Haha exactly I just discovered what is Otamatone

1 Like

this is so nice, @infinitedigits! wowee :partying_face:

1 Like

Really want to try adding the Otamatone and some others from pianobook, any hints/tutorial of how to do so, or shall I just get hacking and figure it out? :smiley: presumably I copy one of the example scripts, replace the URL in the script…+???

2 Likes

yes! but not super user-friendly. here are example instructions for downloading “ghost piano”: mx.samples/README.md at main · schollz/mx.samples · GitHub

its very similar for everything on songbook, except that you need to change the convert.py so that it extracts all the information out of the filenames. (there is no way to do this automatically as every sample pack has different filename structures). but you can get an idea from those example instructions of how to get the midi values, how to deal with dynamics, releases etc. any questions, please ask :slight_smile: i’d love for help to add more samples to mx.samples. anything you come up with i would love to merge back into the main repo to make it available (if you wish)

7 Likes

Thanks for the info, will give it a go soon and yeah will share anything good that I manage :slight_smile:

1 Like

I checked all packs and would like to share some of them:

Hopefully you will find them worth considering :slight_smile:

9 Likes

Really like Harmonium van Dijk. There’s some cool dusty organs to be found on this site.

1 Like

Hi all, I’ve been adding mx samples as an option for my spirals script and really loving how it sounds:
https://www.instagram.com/p/CLcdDmyn0Gk/

But… :slight_smile:
If you change from mx samples to polyperc and then back to mx samples, SuperCollider throws errors:

Buffer UGen: no buffer data

Matron output shows the regular note on/off messages but no sound. If I call

skeys = mxsamples:new()

After changing engine then the sound problem is fixed but I get a repeat of the params for every time the engine is loaded and get a bunch of param related errors when exiting the script.

Does anyone have any ideas? I’m guessing it will need a change to the mx samples library to give the ability to do part of whats in ‘new()’?

My code is here with the library getting initialized here and the engine getting loaded when the param changes here

Thanks!

2 Likes

@tomw okay after thinking about i think the problem is that i didn’t anticipate mx.samples being hot-swapped.

the lua code keeps track of which samples are loaded in super collider, so when you switch out and back in the engine it doesn’t know that those voices are no longer loaded, hence probably why you get regular note on/off messages but no sound.

yeah calling :new() is probaby not the way to go, that will re-initialize everything - all the parameter menus and such. it would be pretty easy to make a reset function that you can call when resetting the engine.

i think it would look somethin glike this (try adding this code to mx.samples/lib/mx.samples.lua):

function MxSamples:reset()
  for name,_ in pairs(self.instrument) do
    for i,_ in ipairs(self.instrument[name]) do
      self.instrument[name][i].bufffer = -1 -- reset buffer info
    end
  end

  for i,_ in ipairs(self.voice) do
    self.voice[i]={age=current_time(),active={name="",midi=0}} -- reset voices
  end
end

so you could load the new engine and then call :reset() and then you should have a clean slate to start sending sounds again. let me know if this works, if not i can do some more digging with an actual norns nearby to test…

2 Likes

I did some digging today and came to the same conclusion. I can handle it in my script if you want but it would be nicer to have it in the library. That function works great except buffer has 3 f’s on the ‘reset buffer info’ line :slight_smile:

1 Like

minor update v0.2.0

  • added :reset() function.@tomw, if it doesn’t work, feel free to make changes and send me a pr and i’ll merge your fix in.

new instruments:

  • dictaphone (thanks @Ukasz for the find!)
  • discord choir (thanks @Ukasz for the find!)
  • harmonium (thanks @cfd90 for the find!)
  • kawai felt

(note: i tried to add some of the others suggested but for various reasons wasn’t able to. some pianobook samples don’t have individual audio files, some don’t have stereo recordings, some require a lot of tlc, etc., etc. but please let me know if there are others that are interesting to you that could be added!)

9 Likes

Thank you so much. Hope I haven’t been too demand’y. I’ve merged in support for mx.samples in the spirals script (posted to the latest tracks thread is anyone is interested to hear it)

2 Likes