HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. bthj
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 4
    • Posts 33
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: Sound from AUv3 plugin to host on iOS

      @d-healey Haven't yet tried another host, been stubbornly trying to get this to work with GarageBand: Kids with access to (school) iPads might be an audience for this experiment, so it would be great to have this working in a freely available AUv3 host like that. It's inspiring to know they sometimes get to play with GB Live Loops in music class (in my neighbourhood), so I thought: "Why not some (free) AUv3 plugins, too?" - but I'll try in a host like AUM and report back.

      posted in General Questions
      bthjB
      bthj
    • RE: Sound from AUv3 plugin to host on iOS

      @Lindon said in Sound from AUv3 plugin to host on iOS:

      ... what you want to do - which might be to get MIDI In to HISE

      Yes, would like to use the plugin as an instrument in this host. Maybe there is something else than MIDI messaging missing? - at least it makes sound with the "in HISE" keyboard.

      posted in General Questions
      bthjB
      bthj
    • RE: Sound from AUv3 plugin to host on iOS

      @Lindon Thanks, but how do I get the AUv3 host - GarageBand in this case - to send messages to the plugin?

      The "in HISE" keyboard test seems to confirm that the plugin is alive and can produce sounds in this context.

      posted in General Questions
      bthjB
      bthj
    • Sound from AUv3 plugin to host on iOS

      Managed to run a HISE plugin as an Audio Unit Extension (AUv3) in GarageBand on iOS (with sounds shipped with the plugin, but not dynamically loaded ones, as I've been able to do in other containers - will try to figure that out later) but now I'm trying to get sounds from the plugin to the AUv3 host (GB in this case):

      If I assign the plugin to a track in GarageBand, then sounds can be heard when playing the keyboard in the plugin interface, but when playing the GarageBand keyboard, no sounds are heard, and when recording, no MIDI events are registered when playing the keyboard on the plugin interface (and when playing the GB keyboard, notes are recorded, but they don't trigger any sounds from the plugin).

      Could this be a MIDI communications issue between the plugin and host? Do any settings come to mind that I might try to change?

      IMG_1557.PNG

      posted in General Questions
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      Made a couple of changes which solve this issue on iOS, discussed here:

      Link Preview Image
      Dynamically download samples on iOS · Issue #265 · christophhart/HISE

      Downloading samples into the FileSystem.Samples directory doesn't work on an iOS device (though it works on a simulator), where the Samples folder seems to be part of the read-only app bundle. A couple of changes solve this particular is...

      favicon

      GitHub (github.com)

      posted in General Questions
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      The above procedure of downloading the files to FileSystem.Samples works fine, until running on iOS, where the Samples folder seems to be part of the read-only app bundle. So downloading to FileSystem.Documents might be a better idea, but after loading the sample map, the Sampler seems to be fixed on searching for the files in FileSystem.Samples.

      Is there some way to instruct Sampler to look for the (monolith) samples in FileSystem.Documents?

      posted in General Questions
      bthjB
      bthj
    • RE: iOS app with HISE

      Found an Internet Archive snapshot of the page at
      http://hise.audio/manual/ios.php
      which currently displays some error. There I found helpful information on the missing pieces:

      • wasn't using the Xcode project generated at Binaries/Builds/iOS/
      • needed to add the Apple Team Development ID in the HISE User Settings and an App Group ID in the Project Settings

      Now the same basic project, which I've previously built as a desktop standalone and -plugin application, runs on an iOS simulator and an iPhone device, which is quite amazing.

      posted in General Questions
      bthjB
      bthj
    • RE: iOS app with HISE

      Hi - I'm interested in catching the iOS train and might have enough tolerance for frustration. The experience @ursbollhalder describes above seems to give some hope. I wouldn't be doing complex interfaces, to begin with at least, so suboptimal graphics performance might not be a problem.

      But I'm unsure how to start experimenting in space: With my HISE project open in Xcode, I only see a Mac run destination; no iPad/iPhone simulator or device destinations (even though a device is connected and shows up for other Xcode projects).

      If I open Binaries/AutogeneratedProject.jucer in Projucer, from within my HISE project, I only see an option for a Xcode (macOS) exporter, while with HISE Standalone.jucer open in Projucer, for compiling HISE itself, I see an Xcode (iOS) exporter option.

      Do you have any ideas on how to overcome this initial hurdle?

      Screenshot 2022-03-01 at 18.30.47.png

      Screenshot 2022-03-02 at 13.59.33.png

      posted in General Questions
      bthjB
      bthj
    • RE: Sampler Playback - ping-pong

      @Lindon Have also been thinking about this
      (just not yet deep enough into HISE to look into this possibility or ask an informed question - still trying to compile a hello world plugin : )

      Would it be possible to combine two Samplers? - one populated with a reverse copy of the sample and some silent prefix, at the same length as the original sample? Could the first one with the direct version be populated with a silent suffix, so it's also double in length? - and this programmatically? If that would be possible, then both could be looped and maybe some crossfade between the intersections?

      No idea if something like this is (automatically) achievable.

      posted in Feature Requests
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      @d-healey Thanks for the insight. Then it makes sense that there is no Special Location FileSystem constant for that folder. I'll just download the sample maps to the Samples folder, alongside the monoliths, Base64 encoded for loading with Sampler.loadSampleMapFromBase64.

      posted in General Questions
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      Tried something like:

      samplesFolder.getParentDirectory().getChildFile("SampleMaps").getChildFile(sampleMapFileName);
      

      which works, so I'll probably go that route, if it isn't some kind of an anti-pattern?

      posted in General Questions
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      @d-healey Wouldn't it be best placed in the SampleMaps folder? - then I'm wondering how to get a filesystem handle on that folder.

      posted in General Questions
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      The approach I have currently implemented is maybe ok - sample maps are not large so redundant downloading isn't a big problem - but if it is possible to persist them in the plugin folder structure, then it would be interesting to try that out as well.

      posted in General Questions
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      @d-healey The aim is not to have the sample maps predefined, but generated mechanically.

      For a bit of a context: I'm exploring those possibilities for the synth.is project, where you can evolve sounds[1], render them as sample packs and currently download them along with programmatically generated SFZs[2]. Many things broken there and I aim to continue working on this research project in the coming years, but all are very much welcome to play with this (I know the interactive evolution part is broken, which is a regression resulting from work on quality diversity search for sounds - I welcome requests for accelerated fixes : )

      Just as SFZs can currently be rendered and downloaded, it would be nice to be able to obtain those sounds directly in a plugin.

      [1] https://youtu.be/dm2cgPqQVP0
      [2] https://youtu.be/3eLo8qORiMQ
      (YouTube links here as inlining above was causing problems)

      posted in General Questions
      bthjB
      bthj
    • RE: Dynamically load instruments over the Internet?

      Now I have written some code towards this functionality - a milestone for me, as this is the first thing I've actually done with HISE.  Really enjoyable getting to know this project and community.

      What I've done so far is:

      • hardcode a list of sample map IDs, to be dynamically fetched via some API endpoint
      • when not available locally, download the corresponding samples monolith HLAC to the Samples folder
      • then fetch the sample map Base64 encoded and load it into the Sampler

      The task in the last bullet is done every time a sample map is selected (for now via combobox), which wastes a bit of network resources (and I have to choose Tools -> Clear all Samplemaps, so they won't be saved in the archive/xml).  It would be good to save the sample map in the filesystem, like the HLAC monoliths, and maybe just download it as xml rather than base64 encoded, but there doesn't seem to be a Special Location for the SampleMaps folder.  Is there some way to obtain a filesystem reference to that folder, as a target for Server.downloadFile?

      Here's the code I've written so far:

      // sampler
      const var Sampler = Synth.getChildSynth("Sampler").asSampler();
      
      // sample maps array
      const var sampleMaps = [
        "fg_01FFRFAGFF9M9R8D6AWHTX7XB9",
        "fg_01FNAAJA8CXA8CNAXAGVWJN0HA"
      ];  // TODO: fetch samples list from some API endpoint, instead of this hardcode
      
      // Internet communication
      Server.setBaseURL("https://storage.googleapis.com");
      
      // combo box
      const var cmbSampleMap = Content.getComponent("cmbSampleMap");
      cmbSampleMap.set("items", sampleMaps.join("\n"));
      
      
      // sample map selection
      
      // - sample map downloaded as base64 and loaded into a Sampler
      inline function fetchAndLoadSampleMap( sampleMapId ) {
      	local sampleMapBase64FileName = sampleMapId + ".txt";
      	Server.callWithGET( 
      		"/synth_is_samples/map/" + sampleMapBase64FileName, 
      		{}, 
      		function(status, sampleMapBase64) {
      			Console.print("sample response: " + sampleMapBase64);
      			Sampler.loadSampleMapFromBase64( sampleMapBase64 );
      		}
      	);
      }
      
      // - combo box callback with conditional  
      // samples monolith download and  storeage in filesystem
      const var samplesFolder = FileSystem.getFolder(FileSystem.Samples);
      inline function oncmbSampleMapControl(component, value)
      {
      	var sampleMapId = sampleMaps[value-1];
      	
      	// ensure samples monolith is available
      	local samplesFileName = sampleMapId + ".ch1";
      	local samplesFile = samplesFolder.getChildFile( samplesFileName );
      	Console.print("samplesFile: " + samplesFile.isFile());
      	if( ! samplesFile.isFile() ) { // we need to download the file
      		Server.downloadFile(
      			"/synth_is_samples/hlac/" + samplesFileName, 
      			{}, 
      			samplesFile, 
      			function() {
      		    	var message = "";
      		    	message += Engine.doubleToString(
      		    		this.data.numDownloaded / 1024.0 / 1024.0, 1
      		    	);
      				message += "MB / " + Engine.doubleToString(
      					this.data.numTotal / 1024.0 / 1024.0, 1
      				) + "MB";
      		    
      		    Console.print(message);
      			
      			if( this.data.finished && this.data.success ) {
      				Console.print( "Samples loaded" );
      				fetchAndLoadSampleMap( sampleMapId );
      			}
      		});
      	} else { // samples monolith is present, so we can go ahead and load the sample map
      		fetchAndLoadSampleMap( sampleMapId );
      	}
      };
      
      • and a snippet of the project:
      HiseSnippet 2568.3oc4YrsaabbcojWCSZ2Tmf7PeoESYKBnfk4MKqKV0wh5BsUrtAQ5KAoFBi1cH4Ts6NK1YVIwFHfh9Wj25mP+AJPds+M4On8blcWtConTUDRBRPIfL4bl4Lm62FePjvgIkhHqBE6NLjYU3A1cFFnFrw.JOvZ6MsJ76rOidJ6DtmK6HI0OzicjOM7HOA0kGz2Z8ggToj4ZUnvruDwoPw6Xo+7cuXcpGMvgkCxx5sBtCaGtOWkC8f0dM2yqM0k0k6ab5EVaaGQvFBOQLveyZW2Jj5bBsOaOJdrYrsJb2sb4JQTGEUwjVEty5B2gcFHNKH47ukK4G6wvEMr5.WTB31BPXbSfZsw.PzNHSOHsrJXePtVY1DsxmZuK2kOBdt14g5MH4XXpOJLy3r2riwdMLYu5Fr2TXoBFrzcRXoO1tiSDOTkuCxO22d6.EKpGET6lrRxYsl4ece6MDvIBTU8omvZGAKFgQkEqWedRy50ma0RkpUijXtiJAVAohbJMhzIAB44DsWR09LklY0qpTNc6xyUkJS+ckz6p69at+yHC.CHQIfuOkQnADd.WwoddCINdL39SnHAbv.bRugp5sRVrKMrxXLGdTIgFEQGZvlxrCKANEOb1UA76nKZGtTgW1WUhPJ2q+Q0azt8gsa8x1sWY2UNb4MWr06dU22uz6Wekxymej8Z05KZs7FuG9auVuu0Ke669h8p+pVkK8gUIjQxYOlxYPJaHId.kH8hD9DovmQZcv1DVfanfGnlGTAREi5RD8HpAbInZhbcDtLsPpMMALEwQ36GGvcnJtHnTGVzofzHYp0oR1aNbmJkGnTgxmUqlD72fPjp8Eh9fdKjKqB3VNUoA+7XA4Xw4FJKG+iGoS.0Ul6AZZE9gh.XQkxlGBuLy0HeToLWw7kkm2P2W8u.RXkx+4fxycIaFQx7XNZggG3wCXjdwA50I5tVAt6.YXxs54261tj4HecohdBGpWNXTSr3Bs4d5zCffXhviHkqpNWUd0RES0c.tduiqF7xs5VgTpXwx0jnO7QbYZVNYMfMqUFP8JHw7HZe8E5uxX9JRHTOVN+j3nY3hEAcqT3wpFFwQkZp5HhIA0rj8LxTnFn4.Dy7e8L0IPvqexgpLIVDMZWTpH78EktTjgTmADCiQgoyPvCzGM3IfqX.LgXR3ZlzLIBL8APulHgWEmLWl4Ax4EylqDH3FAfiI.Ux8U9J8oebiOfLdohiEDC1OCqY9Q0mDtaVfLNhMJZyWDH7.KKABlnmR4dTHG63tKxqwMwYPCzM4RGezQSUdix8gaV4RWLJGS0bqOhooVCnJW+UELRoHuWExuep6hd9XVlyXj.FyESk5BkSPsJj8.rNbTTy7wy1RiK5FMEm7AdTmZSvLi7tybuKZrYBfQN7Id1D3i1n4CkhfzOfxpLpES1HC3idNYqf9fWDvYwfQoqniBTM8qjcvhXFvptTEsZPr+lorOHm0HMp2bgp0G8i4IMxPJIBwjHk2cc3fnPckjq3DzpqPAl6qfLEKNG5Zr65iDozuF2.mxAI7C9GZGyoROnXmb.HLe1mY.UF6fkuIoYHlvmgjVREpgnUDkIoR6MIIo9jWf4AvedAg4IYItOSKTIDRCoiakBz8xApN2WPnCvZSz.WxHeLiZz2X9.xAoCUybZOixgJhhHBkfIhOFZK3YDRVMLWgirJngXUowtbQMot4Evxk+qGCU1RWERCXd03AtryqNP468GfxQocmlc2HsmdtWPJRhEmVGBsjooWwnxKfRX2jZiX0vzrgajR9JSMWIVSTWUbiXnnsO+uxzp2SXCOV.8.Pd7UpO3H9tw5.vZJn63Z9wRtyig55ZMPIPyVgCwf0WkvI+IRilKA+3QORmLFbJ4jOG1C8CgceNYgFyUB8lQGvz.FPFdMaXRq2U3ySpedyls0elaUs+O9OWn+WzqJEcc33UdCKsTc8GPtSv9hjFCwldbXXiNRsBHhF.gwbnBSbDIzKFtNxYf4UbFohbnuOSEMTma+LF1N0b4cWlS5cDvlHCzUrIWF5QGV4IqL2pFEu1SnX6CouPUx3tF6lDFiFY7P6E6eL1FqtRJYxanWujqXh8RMw59emx13bNQWGhUBzT0rHJdPn4+wmnv9pmnvbfGmD+ViCJB1FZ8d+PVvUMFjUpyNN8QJWAGUom83goydrA1N45hys3vPFejsoStklyMmFz5MauIjwK69fqFHWHKRwQIovlrSgQCSlson8lL4IJQHLk2n.MqB26lS8yyo7mu1PyYJ08oZU341WaK+kt1t8s7o.ArKLCbimwcUCFQf+1IqMfw6OPYReKCY3ApzAJSjg1PlJLeVWnxpVN901lfZXJHVVFBxWt13D9a+6Whve4Zo54DkZI6WmlZw539YSU+.6EZt7BKs3JOY45VnpIai6auvSatxxKr7SZX.uYBFqrvJKtTyUdpk1fNyGJXiA+kg6+cHSU9YjFXwSDVZ329NJXjujXIX6dTHqgdeHREPC.kb7WwSVAorzqSxM9xHZ3.tibLL2j0iF6oZEFBiGhuy.rqJJNYy0g1ZNAtpCwAlvau5hqn+r7x0WZk5K0Pepth9vPR6BSaM1MiizCi3G.0UPVQC6MR1agAVDQF7xHpAa11ip5nF5MwMcvVYJ8IgCgvQpbpzLC9VAtFzdwRWXoXmqLeEDqK+X.OzFDhXfEF+sIvGjIcCH8xXOH.NYYfjqFZFh9C1CVbSYwO19.Nz.wz4wYlBOBYO9wfGSelmek8V85AV4bF7N1se+ONuoiI4+sIj+SrgFTYTeH3OscDMOTzNa0O.O1V3M9w1NHhomVCZLI+Xe6ZqGCpnnwg9OWSSpV9h3fwnUJieHChQUXbV9l2asCO7kQh3vIw56dg1mnaDDAiuvnwF6Gv.UsxTF2HRHk8.wQeWRysNHNpOpqxgbHCFKRNNLHmTZ7FVOsPA.DDNilWtytTXfgwx.qoR8tTsIdF6j0MlXcyIV+jIVuvDqe5DqWbh0KkudTENzw.eAzIZH3t2rFBfK3.rsYiStNued4SMj+GOS5c+Y2yj9KfDii8RtEy3wNbTwuUvoPDG.A4wOwNs9VFzFiwk6BStENPDvcF2+F7W62mEYx6SJP+iu4a92unkRAgW4G6SW6PlGCl1IGzebscftooQiG198RWz368qZOU60uwNgcIXJKxubKnM6+2TP65TQeTZ4LhtCneFZCefsNqKAKR9SI6cnHF66OqniMTYpCTM1gYVeBG4HcccbMxDcXAt5E+G3S5lMxJlga1HaSKmrqBjmzeq6guvrr.rHituKOnLomoKpDp4irDTv4mDtzm5DINxIYpSjWumFBvkA5+q+JZuKtlzHaJSa65Uqa4C0XNxwAcxeLTxZ53z7VfyStE3rvs.mmdKvYwaANKcKvY4qEGr7dqXXTsjjd.fC1JwwpvVibrl05+hLTr5H
      
      posted in General Questions
      bthjB
      bthj
    • RE: unstable macOS build from develop branch

      @Christoph-Hart Thanks!

      The SFZ file I'm trying is very simple, but I wonder if there might be some path issues. Tried to prepend {PROJECT_FOLDER} in the SFZ, so it reads like sample={PROJECT_FOLDER}/<file-path>, with no luck.

      I've yet to try the loadSfzFile scripting API method with my own UI controls...

      posted in Bug Reports
      bthjB
      bthj
    • RE: unstable macOS build from develop branch

      @d-healey Now I see how Monolith* properties are added to the the sample map XML after using the Convert the current samplemap to HLAC monolith format button.

      But can't see that the Import SFZ file format button performs any changes to the current HISE sample map or the source SFZ.

      posted in Bug Reports
      bthjB
      bthj
    • RE: unstable macOS build from develop branch

      @d-healey yes, every other of my initial actions - just starting out, and still unsure if I built with some wrong settings :)

      I should add that I was able to convert a sample map to a HLAC monolith by pressing an icon with a down-arrow in SampleMapEditor: Sampler (how do I import such a monolith to the sampler?). There I also noticed an icon for importing SFZ files, but using that gives no results, not even a crash; the SFZ I'm trying does work in e.g. the Sforzando player.

      Screenshot 2022-02-25 at 16.51.46.png

      posted in Bug Reports
      bthjB
      bthj
    • unstable macOS build from develop branch

      Hi - a macOS build I made from the develop git branch is very unstable, where every other thing I click or action I choose results in a crash. I'm pretty sure HISE isn't this unstable for everyone and I must be doing something wrong.

      A couple of examples resulting in a crash:

      • choosing Tools -> Convert SFZ files to SampleMaps
      • choosing Tools -> Convert all samples to Monolith + Samplemap
      • with a few files dragged into SampleMapEditor: Sampler and clicking an empty space in SampleEditor: Sampler

      A screen recording of this experience can be seen / downloaded here:
      https://drive.google.com/file/d/1TnyiHQXOLbj9xHCWoeaGFOHCb_0j1xti/view?usp=sharing

      The SFZ and related files I tried to convert can be downloaded from here:
      https://drive.google.com/file/d/1IgqKxdFSwwpQgeC-pth8UmAj6um24fRV/view?usp=sharing

      Any ideas on what I might look into changing?

      Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro16,1
      Processor Name: 8-Core Intel Core i9
      Processor Speed: 2,3 GHz
      Number of Processors: 1
      Total Number of Cores: 8
      L2 Cache (per Core): 256 KB
      L3 Cache: 16 MB
      Hyper-Threading Technology: Enabled
      Memory: 32 GB
      System Firmware Version: 1715.40.15.0.0 (iBridge: 19.16.10549.0.0,0)
      OS Loader Version: 540.40.4~45

      System Software Overview:

      System Version: macOS 12.0.1 (21A559)
      Kernel Version: Darwin 21.1.0

      Screenshot 2022-02-25 at 15.32.20.png

      Screenshot 2022-02-25 at 16.05.57.png

      posted in Bug Reports
      bthjB
      bthj