has something happened here?
-
-
for my small drum machine it is important that the arp continues to run without stopping when changing presets - as well as with all the drumvst I have (that's almost all of them).
Is this possible in the meantime? -
factory presets should not be overwritten by the user. A user preset should always be created when saving.
-
is it now possible for the arp to output midi data or at least drag and drop it into the DAW?
-
are the HISE docs reasonably up to date - a lot of new things have been introduced - if you don't stay on the ball you will miss this info.
-
-
-
Set them to read-only in project preferences. This setting has been there for a long time.
-
Yes - but your reasonable might not be my reasonable ;)
-
-
@MikeB 1. Could be done with a user Preset Handler callback maybe?
https://docs.hise.audio/scripting/scripting-api/userpresethandler/index.html
-
@MikeB do you mean when playing in a DAW - so you set a loop up and browse through presets?
-
@MikeB I would recommend using a MIDI player instead of the arpeggiator for the drum machine, this gives you
- drag and drop of MIDI to DAW (otherwise you have to create the MIDI data yourself from the arp which is not trivial)
- perfect synchronisation to the DAW position if you sync it to the external clock
- the ability to seek to the previous position when a preset loads.
- much better control over the loop range.
Every drum-based product I've build so far used the MIDI player.
-
@Christoph-Hart said in has something happened here?:
@MikeB I would recommend using a MIDI player instead of the arpeggiator for the drum machine, this gives you
- drag and drop of MIDI to DAW (otherwise you have to create the MIDI data yourself from the arp which is not trivial)
- perfect synchronisation to the DAW position if you sync it to the external clock
- the ability to seek to the previous position when a preset loads.
- much better control over the loop range.
Every drum-based product I've build so far used the MIDI player.
I can see the MIDI player as a big improvement over the arp, but what happens when you want your drum sequencer to do additional stuff beyond note playing, say changing send levels per step, or pitch levels etc. is there a mechanism for that we can add to the MIDI player?
-
@Lindon Write a CC lane to the MIDI player and use that to control whatever you want. This way it will also stay consistent when you drop the MIDI in the DAW
-
@Christoph-Hart said in has something happened here?:
@Lindon Write a CC lane to the MIDI player and use that to control whatever you want. This way it will also stay consistent when you drop the MIDI in the DAW
yeah that'd work - good idea...I think I get what you are saying, add different CC controllers for different actions, say CC100 = send level 1, cc99 = pitch change in the first seq track...
-
@Christoph-Hart said in has something happened here?:
@MikeB I would recommend using a MIDI player instead of the arpeggiator for the drum machine, this gives you
- drag and drop of MIDI to DAW (otherwise you have to create the MIDI data yourself from the arp which is not trivial)
- perfect synchronisation to the DAW position if you sync it to the external clock
- the ability to seek to the previous position when a preset loads.
- much better control over the loop range.
Every drum-based product I've build so far used the MIDI player.
Good to now!
-
@Christoph-Hart said in has something happened here?:
@MikeB I would recommend using a MIDI player instead of the arpeggiator for the drum machine, this gives you
But unfortunately the following is not possible - is it?
- Multiple instruments 4 each with its own player.
I would need four midifiles for each preset?! - Random function for each player and each function
Note on/off, velocity, pitch etc. - The user can set each step individually.
- drag and drop of MIDI to DAW (otherwise you have to create the MIDI data yourself from the arp which is not trivial)
No need to urgently drag and drop midi data, but midi out would be good.
- perfect synchronisation to the DAW position if you sync it to the external clock
I expect the same from an arp
- the ability to seek to the previous position when a preset loads.
- much better control over the loop range.
If the arp runs independently of a Note-on command, I don't have to search for a position. A preset change should not stop the arp but become active from the next bar.
I think all the arp really needs is its own start/stop button that runs the arp independently of NoteOn/Off - either with internal clock or DAW sync.
Every drum-based product I've build so far used the MIDI player.
Unfortunately, all drum-based products that are not yours do not use a midi player.
But I'm open - but I'd have to see if the midiplayer concept is really a replacement. Do you have a snippet or example that can be used as a guide?
YOU have an arp in Hise that is unique - none of the 23 drum plug-ins I have have these possibilities* - but unfortunately it is not being developed further and is languishing.
*(except one from Blinksonic called Substance for NI Reaktor).
- Multiple instruments 4 each with its own player.
-
@Matt_SF said in has something happened here?:
@MikeB 1. Could be done with a user Preset Handler callback maybe?
https://docs.hise.audio/scripting/scripting-api/userpresethandler/index.html
Do you have an example - because as long as the Arp receives a note-off command with every preset change, it will stop.
-
@Christoph-Hart said in has something happened here?:
@Lindon Write a CC lane to the MIDI player and use that to control whatever you want. This way it will also stay consistent when you drop the MIDI in the DAW
Do you have examples or a detailed description?
-
@MikeB said in has something happened here?:
@Christoph-Hart said in has something happened here?:
@MikeB I would recommend using a MIDI player instead of the arpeggiator for the drum machine, this gives you
But unfortunately the following is not possible - is it?
- Multiple instruments 4 each with its own player.
I would need four midifiles for each preset?!
..er no, I think you'd only need one midi file player, and each "instrument" would respond to only a single midi channel...
- Multiple instruments 4 each with its own player.
-
@MikeB this is an example using a midi player instead of an arpeggiator, maybe it will give you an idea of how to accomplish what you're trying to do
(Changed the snippet to a better version)2022-09-09)
HiseSnippet 3129.3oc4Z81bZbbF+vxmS.m+OIS6K2xzoyIK5I.gIJMIiAAnXpP.VfjshG2jSbKvFerG4tCjIc7LoeyxGg9QnusuyeCZed18NXODhf0T2jNUilC1m8Ye1eO+c2aWZ641i5665okHY2YioZIdG8Ny3ACqLzhw0pWUKwGp2k5Gv3CHWRrlXyb0NX1XKeepsVhDa8UHaIRdaMweu5AGX4Xw6QWPRS6LWVOZC1HVvBpsKcDyw4PKaZW1HEtKTpdOWdEWG2I.j1ROq1XqdO2Z.soEx1sz0RbmZ1r.WuNAVATesD29.W6YcF5dIWx+YLe1ENTrQNsNffjjOz0wFQLRUqxPlic6HU2WSKgd6EFhsjFhOV+XlMaN8EFjOPzAYwHTsGItUb3sUL3kSEdYUf2JfzsTfzaE4aDPxwZF0S.kj5GG1RECUl34Q4Acne+DZLewqdPXWc8.qpJ8Fttiqws.jYqRFE9E.qcFSi2Qhs1X0L2ZUSMTiNj4PQUNQTCfaT8.2cUq.KsDEz269l7tEOZ+JCO7QULMO9Q095uqroo4SLMKa11bD6jNcqm+qAJlUMmtyDSSMTPKBaRfAZcXC3VAS7.Z5MmL5.K.BJZUS2QLneQ1PHwGVpJkuJxnECzdu.0PcoYLlkRSwMpKciendmddrwAK5AU16pWmGP85aAdLUuIfyNNLapWavQ.vUOws.AKkf1s9muudEWXb7.yQVOmdnGzXtbLJlMaFB7X6OOUJHuxOfL0xiDFyP9RhHU2b.MXQbkQ5vtSCCZwXZ5FPOyxYBswENv.ilSXnUbGM1kCMLRqxz0L7i3W7yObfIb3o1c2jclLX.V9wkS564NhTYnGyOvc7Pp2eB5m3eIKn2PYeo8sFMFhjRSBbIoCXf4JMxCqOIXHym.+G3MglAZQIGWuZcxXog3RnVDzkE2uuq2HQ2APzhe.HOehaeAEFuGFGLPNR5T.xDKOOqY3TX4SFMwm0yBjCNuDiI9SrbblQxs6mULKJCKx2OABWfoiC541ljtHlFBizhzmB0VsmZwCfRcvLNE3BDGLYRUBmhonkAD7HWOJAfFjdQtbHkS5MzhO.4MfBlRPM4B7Vs7iI1S7vNnPtp3yfdaalZ26kJzEa5SCN0WTBVnq04cQvafVIz963hJzEz..0yYBbegJRaXxtWTzD5KEitM06Qx9MPYHLT3DMW.FKIPfq6saJo2tQ8p0Noc4JG0IL3oSaeXBe50DvzrS6zamIUxjIutPpy9Y4nAxwyBi1515jZj1mTqSmZUIGU67No7nCHi8nX13yoyDfIFyMa0sFodyCaQN7jVGST0.bn9icf3UkQg7eV4FmViznUqiNsMoa4CZTKRcadFTB44mBUVDNNXXoysatzYHvG4qF9Y5LofOJD0rq7yBRx6GRtPH48kjyULj99gzyUT1wdQhMWwvd1KbBJFMC6EMEEKD0S2zOadIkHLCEpP.CRJCYucKjAB8ymI0d6tO9s8vGEvl4JheU7Xer8d4wulS9rHRonbrhm6IDQt7BgTP7rnPL4ueQDBBGQstg1cR4iacZytoXbGFmR5Og2ST5vkOuJpOTbAiD7bcL5EEFjQlcscp+ZpjPI.hgHKBh81Fhb7wnWiz9hgWdj6DdP5nA74P+oRB8i0t7w.9WBf5ZhzTgP5sQoFBjJPkBbYViUiysC0yxUqJC2N7zlU5VuUyqnmV11HPLvXtLhBCbpSFQAG9jQWP8.bSgrZVvrLDnVACGUFhCkOHXHp8D3OrdM5IqgUUnl87nvZ7GCY.PsoGhaiRjXibNRjWCqoYLxDm2Vb0NPJMEypwB.nxvYgPwHBSpcVQBdiPkH1LNuRRHDA6bGYo+CciJ9b.fZeiHcb6vwOWAc2HEzctB5JUv98U6YcZn60qDt2PkfrSjmRUaPes43I9CMFERdAEWLfbobDQsIYEqtsDKl0tQ4yqcxUBlVDUioExBYl8bnVBySRH3z20gZNFpTgoGgbiKbmTtvAGBslJhyDgXyoCqW+kjbKXaJzToHxSU2G.ZVDe2.qQGNBYpHVKFRQeZ1mgLsHwwXABjlKfOXNtWzvVLwQ6qCXHRj2ir279sopbjirqTLHCoRB1ztOrNXH6PPaKXJa0rw4.WGT9jLXZJoZs10ZVsVytPOx7VQc+NQh+BKgJjSHNQUGFzL6mSXjuXNVIrc1AJBANfjSC02bB8UprBSS4.ClnRDntg7jek7.fWnAEPlwsJDZXXQzf+E.gik+TV0CKChPHImGynekIXGB5lSlLpPjLpAKEkY4vAAheoXReYnAs1ws6dNoxombBZ05T6QmVqYkZoRprcEbS8Fog5uxcx02xwWTEVL9JmTqLXlaV6wqXvxzbi4tzLp92LBugTPQCnuCjBEVVnAnEgJSXM9kVL+nlsNXUK6nDJu1UcTWBIo59nkK9DPeAtnS7sG7Twve15WzI1dpul0btJHiVxYQICeRkxMZb.7sUnlPDwFqcHVkqwNdwhr9iWMzVHXAhVxx1hKqMA.s9gDv42fT6LHzoCwPcObf7gWAv32E5KMY9k8BX8Y8XVNFaGlcMuyAbXC10vcsFsO3j3DbX8FMhsQP3EOFFQPYEVeL0ZAax5vQBePr0L1Nb6Cwc9HADtye2Lf61RAdDHPisIeITzXdFYTzJ9pLFYiRpf+oPlQXgCX8NY1txd0id091gKtHmajUtXebKRxWZqOy4iY+BTjV.J8fdrw0otGL3sUqjntQJAd8WQcC6Wr.2uL0x4OvhtR275sJegznLuVA7RhR6wl38U8XdzQvKfsVeVLG1xXNLf0A4Fg8RciK7u5dhRgluUs44OHiZItc7ybQeyNykdx5BJL5xqyYAsFS4W24goEVLAOYrPTASef3zK9nvSuXwgRnwr0RbGc7swzDXFOjh2Gjhs3vadpdwBluY9SBzMCcmoht6dEzc5AkMM8pW0zrsaan8Hrs8eFZOkisoX6FODZaxf182Aa+Drc+wX+82Ad7PQ+WfsycP4WGz0XMny4bmy24h84S+zYYYGLoENae1S.p6WwcZ1YsDlho1c269yfGuPz+N+.6fGWnxia8mmJ6+SezfuuXE3KbQ6cTscaIQ26ECcBj895wdgjHHFc7VYKsIB48zUWgYYY7GJocZcww7okHQXbGDKNlBYoXXdhpzordT4QmkTuJ0+4PpMXzluJGPdSBMeg5wLOSswkL6fgyI7i+sRCorACUNYuyKMR8Xt2+mFYoHs8K4GPG2g8CwNpUME7c2MI37ZvWou80Feu5Ap36m9lR1z9VSbjajV8P3WEtW.t5ba5KhJQrPYd6MIV95L17MQYVMbWIzxqsB67FDHeM36mtbI7o8WtB9pWB2MFFKFJOs0X7091UZjGwrscnQq8p5RTUm2RpNuan5zv5BpyxYTvVDUTlRemhxPVVY9wythxTHTYtiNd5KanwboDZkomtNaIDIeUaYLiU9WKiU5qIP4iC0o2Q.ShrW0yg+1xhIef9wt1Sbv8+qd6N3UZE1ANcpmEOdx5b.FyhcWH+m5Je1TH9g5swC8d0X7Vq.i3sI8F.igWT16pWqeeZufE.715G9j2L2Jl5z+Ixo+t5O1ZJUruPwj+Ih1hCx+qnbpGZ6xsl6r7uuo2Y43M9NKa0K.fPW7BEf8DSyoJ4k5KuZeUoAS3wYWRJFWn5cHndJ781khHlWkXaKdLgAsiIoiYJ4d+iGHu.vNTPara42CT13W50qdP6IvKU7XLoNm5.WPNuJ4GZ4YC9kdwBD2ZcWeata302dme0c8s+OP4lX2vbxHL1ggmAYMNdlr.EDieDroKQc1Hp4igxic4tiG5xYwbzmPC7XCFPiE+rREpbPPrai9iKcB0gZ4qjh86K0fwoVdfchdCsEq+ZnSjXC8W+VcIbIXM.xu3KSD9CCHkdzYoGVBLpIYtJj6mGg3UAZIfvB2Xcvk6End4+XModLXmHwcFuVqwj6M+5fa8+MqCt9xKPMdxup2MyuQGVqIOQ3JI+x3KOwcBd+3GaAkrdg7mFRGXw7dzv6uY9u5hv1Yw1HD5P41hF+K3uvNygsSD1YtnN+uxbLxpmm62zS9F4XUs2VPAzat32ASR8iw1jbyOpA8rlYgWewl8M85gwq+QX40UOl72fwr2MXLEtAi492fwT7FLlO8FLl8W6XvshTdRf6HYLOPncM4O4oDy+4XkXKs+MPJFgsU
-
@ulrik -- thats pretty slick I think, well done.
-
@Lindon thank you!
-
Yes, nice one.
BTW, I would recommend switching to ticks as unit when doing this kind of MIDI editing:
// switch from "samples" to "ticks" // if this is true, the MIDI player will transform the timestamps of the incoming MIDI event array // as musical ticks (usually 1/960 of a quarter note). This has a few advantages over using sample // values (more stable when changing tempos in the DAW during editing etc). MPlayer.setUseTimestampInTicks(true); local betterTimestamp = quarterPos * MPlayer.getTicksPerQuarter(); event.setTimestamp(betterTimestamp);
-
@Christoph-Hart thank you, I'll try that!
-
@ulrik what a Legend
That code was just amzing